Files
services/nft/proto/nft.pb.go
2022-02-25 13:06:19 +00:00

1959 lines
64 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
// protoc v3.15.5
// source: proto/nft.proto
package nft
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
structpb "google.golang.org/protobuf/types/known/structpb"
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)
)
// Create your own NFT (coming soon)
type CreateRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// name of the NFT
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// description
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// image data
Image []byte `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"`
// data if not image
Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
}
func (x *CreateRequest) Reset() {
*x = CreateRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateRequest) ProtoMessage() {}
func (x *CreateRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 CreateRequest.ProtoReflect.Descriptor instead.
func (*CreateRequest) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{0}
}
func (x *CreateRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *CreateRequest) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *CreateRequest) GetImage() []byte {
if x != nil {
return x.Image
}
return nil
}
func (x *CreateRequest) GetData() []byte {
if x != nil {
return x.Data
}
return nil
}
type CreateResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asset *Asset `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"`
}
func (x *CreateResponse) Reset() {
*x = CreateResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateResponse) ProtoMessage() {}
func (x *CreateResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 CreateResponse.ProtoReflect.Descriptor instead.
func (*CreateResponse) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{1}
}
func (x *CreateResponse) GetAsset() *Asset {
if x != nil {
return x.Asset
}
return nil
}
// Get a list of collections
type CollectionsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
}
func (x *CollectionsRequest) Reset() {
*x = CollectionsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CollectionsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionsRequest) ProtoMessage() {}
func (x *CollectionsRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 CollectionsRequest.ProtoReflect.Descriptor instead.
func (*CollectionsRequest) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{2}
}
func (x *CollectionsRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *CollectionsRequest) GetOffset() int32 {
if x != nil {
return x.Offset
}
return 0
}
type CollectionsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Collections []*Collection `protobuf:"bytes,1,rep,name=collections,proto3" json:"collections,omitempty"`
}
func (x *CollectionsResponse) Reset() {
*x = CollectionsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CollectionsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionsResponse) ProtoMessage() {}
func (x *CollectionsResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 CollectionsResponse.ProtoReflect.Descriptor instead.
func (*CollectionsResponse) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{3}
}
func (x *CollectionsResponse) GetCollections() []*Collection {
if x != nil {
return x.Collections
}
return nil
}
type Asset struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// id of the asset
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// the token id
TokenId string `protobuf:"bytes,2,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"`
// name of the asset
Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
// related description
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
// the image url
ImageUrl string `protobuf:"bytes,5,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
// number of sales
Sales int32 `protobuf:"varint,6,opt,name=sales,proto3" json:"sales,omitempty"`
// the permalink
Permalink string `protobuf:"bytes,7,opt,name=permalink,proto3" json:"permalink,omitempty"`
// asset contract
Contract *Contract `protobuf:"bytes,8,opt,name=contract,proto3" json:"contract,omitempty"`
// associated collection
Collection *Collection `protobuf:"bytes,9,opt,name=collection,proto3" json:"collection,omitempty"`
// Creator of the NFT
Creator *User `protobuf:"bytes,10,opt,name=creator,proto3" json:"creator,omitempty"`
// Owner of the NFT
Owner *User `protobuf:"bytes,11,opt,name=owner,proto3" json:"owner,omitempty"`
// is it a presale
Presale bool `protobuf:"varint,12,opt,name=presale,proto3" json:"presale,omitempty"`
// last time sold
LastSale *Sale `protobuf:"bytes,13,opt,name=last_sale,json=lastSale,proto3" json:"last_sale,omitempty"`
// listing date
ListingDate string `protobuf:"bytes,14,opt,name=listing_date,json=listingDate,proto3" json:"listing_date,omitempty"`
// traits associated with the item
Traits []*structpb.Struct `protobuf:"bytes,15,rep,name=traits,proto3" json:"traits,omitempty"`
}
func (x *Asset) Reset() {
*x = Asset{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Asset) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Asset) ProtoMessage() {}
func (x *Asset) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 Asset.ProtoReflect.Descriptor instead.
func (*Asset) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{4}
}
func (x *Asset) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Asset) GetTokenId() string {
if x != nil {
return x.TokenId
}
return ""
}
func (x *Asset) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Asset) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Asset) GetImageUrl() string {
if x != nil {
return x.ImageUrl
}
return ""
}
func (x *Asset) GetSales() int32 {
if x != nil {
return x.Sales
}
return 0
}
func (x *Asset) GetPermalink() string {
if x != nil {
return x.Permalink
}
return ""
}
func (x *Asset) GetContract() *Contract {
if x != nil {
return x.Contract
}
return nil
}
func (x *Asset) GetCollection() *Collection {
if x != nil {
return x.Collection
}
return nil
}
func (x *Asset) GetCreator() *User {
if x != nil {
return x.Creator
}
return nil
}
func (x *Asset) GetOwner() *User {
if x != nil {
return x.Owner
}
return nil
}
func (x *Asset) GetPresale() bool {
if x != nil {
return x.Presale
}
return false
}
func (x *Asset) GetLastSale() *Sale {
if x != nil {
return x.LastSale
}
return nil
}
func (x *Asset) GetListingDate() string {
if x != nil {
return x.ListingDate
}
return ""
}
func (x *Asset) GetTraits() []*structpb.Struct {
if x != nil {
return x.Traits
}
return nil
}
type Contract struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// name of contract
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// ethereum address
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
// type of contract e.g "semi-fungible"
Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
// timestamp of creation
CreatedAt string `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
// owner id
Owner int32 `protobuf:"varint,5,opt,name=owner,proto3" json:"owner,omitempty"`
// aka "ERC1155"
Schema string `protobuf:"bytes,6,opt,name=schema,proto3" json:"schema,omitempty"`
// related symbol
Symbol string `protobuf:"bytes,7,opt,name=symbol,proto3" json:"symbol,omitempty"`
// description of contract
Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
// payout address
PayoutAddress string `protobuf:"bytes,9,opt,name=payout_address,json=payoutAddress,proto3" json:"payout_address,omitempty"`
// seller fees
SellerFees string `protobuf:"bytes,10,opt,name=seller_fees,json=sellerFees,proto3" json:"seller_fees,omitempty"`
}
func (x *Contract) Reset() {
*x = Contract{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Contract) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Contract) ProtoMessage() {}
func (x *Contract) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 Contract.ProtoReflect.Descriptor instead.
func (*Contract) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{5}
}
func (x *Contract) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Contract) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *Contract) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *Contract) GetCreatedAt() string {
if x != nil {
return x.CreatedAt
}
return ""
}
func (x *Contract) GetOwner() int32 {
if x != nil {
return x.Owner
}
return 0
}
func (x *Contract) GetSchema() string {
if x != nil {
return x.Schema
}
return ""
}
func (x *Contract) GetSymbol() string {
if x != nil {
return x.Symbol
}
return ""
}
func (x *Contract) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Contract) GetPayoutAddress() string {
if x != nil {
return x.PayoutAddress
}
return ""
}
func (x *Contract) GetSellerFees() string {
if x != nil {
return x.SellerFees
}
return ""
}
type Collection struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// name of the collection
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// description of the collection
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// collection slug
Slug string `protobuf:"bytes,3,opt,name=slug,proto3" json:"slug,omitempty"`
// an image for the collection
ImageUrl string `protobuf:"bytes,4,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
// creation time
CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
// payout address for the collection's royalties
PayoutAddress string `protobuf:"bytes,6,opt,name=payout_address,json=payoutAddress,proto3" json:"payout_address,omitempty"`
// external link to the original website for the collection
ExternalLink string `protobuf:"bytes,7,opt,name=external_link,json=externalLink,proto3" json:"external_link,omitempty"`
// image used in the banner for the collection
BannerImageUrl string `protobuf:"bytes,8,opt,name=banner_image_url,json=bannerImageUrl,proto3" json:"banner_image_url,omitempty"`
// the fees that get paid out when a sale is made
SellerFees string `protobuf:"bytes,9,opt,name=seller_fees,json=sellerFees,proto3" json:"seller_fees,omitempty"`
// the collection's approval status on OpenSea
SafelistRequestStatus string `protobuf:"bytes,10,opt,name=safelist_request_status,json=safelistRequestStatus,proto3" json:"safelist_request_status,omitempty"`
// a list of the contracts associated with this collection
PrimaryAssetContracts []*Contract `protobuf:"bytes,11,rep,name=primary_asset_contracts,json=primaryAssetContracts,proto3" json:"primary_asset_contracts,omitempty"`
// listing of all the trait types available within this collection
Traits *structpb.Struct `protobuf:"bytes,12,opt,name=traits,proto3" json:"traits,omitempty"`
// the payment tokens accepted for this collection
PaymentTokens []*Token `protobuf:"bytes,13,rep,name=payment_tokens,json=paymentTokens,proto3" json:"payment_tokens,omitempty"`
// approved editors for this collection
Editors []string `protobuf:"bytes,14,rep,name=editors,proto3" json:"editors,omitempty"`
// sales statistics associated with the collection
Stats *structpb.Struct `protobuf:"bytes,15,opt,name=stats,proto3" json:"stats,omitempty"`
}
func (x *Collection) Reset() {
*x = Collection{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Collection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Collection) ProtoMessage() {}
func (x *Collection) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 Collection.ProtoReflect.Descriptor instead.
func (*Collection) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{6}
}
func (x *Collection) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Collection) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Collection) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
func (x *Collection) GetImageUrl() string {
if x != nil {
return x.ImageUrl
}
return ""
}
func (x *Collection) GetCreatedAt() string {
if x != nil {
return x.CreatedAt
}
return ""
}
func (x *Collection) GetPayoutAddress() string {
if x != nil {
return x.PayoutAddress
}
return ""
}
func (x *Collection) GetExternalLink() string {
if x != nil {
return x.ExternalLink
}
return ""
}
func (x *Collection) GetBannerImageUrl() string {
if x != nil {
return x.BannerImageUrl
}
return ""
}
func (x *Collection) GetSellerFees() string {
if x != nil {
return x.SellerFees
}
return ""
}
func (x *Collection) GetSafelistRequestStatus() string {
if x != nil {
return x.SafelistRequestStatus
}
return ""
}
func (x *Collection) GetPrimaryAssetContracts() []*Contract {
if x != nil {
return x.PrimaryAssetContracts
}
return nil
}
func (x *Collection) GetTraits() *structpb.Struct {
if x != nil {
return x.Traits
}
return nil
}
func (x *Collection) GetPaymentTokens() []*Token {
if x != nil {
return x.PaymentTokens
}
return nil
}
func (x *Collection) GetEditors() []string {
if x != nil {
return x.Editors
}
return nil
}
func (x *Collection) GetStats() *structpb.Struct {
if x != nil {
return x.Stats
}
return nil
}
type User struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
ProfileUrl string `protobuf:"bytes,2,opt,name=profile_url,json=profileUrl,proto3" json:"profile_url,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"`
}
func (x *User) Reset() {
*x = User{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *User) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*User) ProtoMessage() {}
func (x *User) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 User.ProtoReflect.Descriptor instead.
func (*User) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{7}
}
func (x *User) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *User) GetProfileUrl() string {
if x != nil {
return x.ProfileUrl
}
return ""
}
func (x *User) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type Sale struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
AssetTokenId string `protobuf:"bytes,1,opt,name=asset_token_id,json=assetTokenId,proto3" json:"asset_token_id,omitempty"`
AssetDecimals int32 `protobuf:"varint,2,opt,name=asset_decimals,json=assetDecimals,proto3" json:"asset_decimals,omitempty"`
EventType string `protobuf:"bytes,3,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
EventTimestamp string `protobuf:"bytes,4,opt,name=event_timestamp,json=eventTimestamp,proto3" json:"event_timestamp,omitempty"`
TotalPrice string `protobuf:"bytes,5,opt,name=total_price,json=totalPrice,proto3" json:"total_price,omitempty"`
Quantity string `protobuf:"bytes,6,opt,name=quantity,proto3" json:"quantity,omitempty"`
CreatedAt string `protobuf:"bytes,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
Transaction *Transaction `protobuf:"bytes,8,opt,name=transaction,proto3" json:"transaction,omitempty"`
PaymentToken *Token `protobuf:"bytes,9,opt,name=payment_token,json=paymentToken,proto3" json:"payment_token,omitempty"`
}
func (x *Sale) Reset() {
*x = Sale{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Sale) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Sale) ProtoMessage() {}
func (x *Sale) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 Sale.ProtoReflect.Descriptor instead.
func (*Sale) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{8}
}
func (x *Sale) GetAssetTokenId() string {
if x != nil {
return x.AssetTokenId
}
return ""
}
func (x *Sale) GetAssetDecimals() int32 {
if x != nil {
return x.AssetDecimals
}
return 0
}
func (x *Sale) GetEventType() string {
if x != nil {
return x.EventType
}
return ""
}
func (x *Sale) GetEventTimestamp() string {
if x != nil {
return x.EventTimestamp
}
return ""
}
func (x *Sale) GetTotalPrice() string {
if x != nil {
return x.TotalPrice
}
return ""
}
func (x *Sale) GetQuantity() string {
if x != nil {
return x.Quantity
}
return ""
}
func (x *Sale) GetCreatedAt() string {
if x != nil {
return x.CreatedAt
}
return ""
}
func (x *Sale) GetTransaction() *Transaction {
if x != nil {
return x.Transaction
}
return nil
}
func (x *Sale) GetPaymentToken() *Token {
if x != nil {
return x.PaymentToken
}
return nil
}
type Transaction struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Timestamp string `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
BlockHash string `protobuf:"bytes,3,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
BlockNumber string `protobuf:"bytes,4,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"`
FromAccount *User `protobuf:"bytes,5,opt,name=from_account,json=fromAccount,proto3" json:"from_account,omitempty"`
ToAccount *User `protobuf:"bytes,6,opt,name=to_account,json=toAccount,proto3" json:"to_account,omitempty"`
TransactionHash string `protobuf:"bytes,7,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"`
TransactionIndex string `protobuf:"bytes,8,opt,name=transaction_index,json=transactionIndex,proto3" json:"transaction_index,omitempty"`
}
func (x *Transaction) Reset() {
*x = Transaction{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Transaction) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Transaction) ProtoMessage() {}
func (x *Transaction) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 Transaction.ProtoReflect.Descriptor instead.
func (*Transaction) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{9}
}
func (x *Transaction) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Transaction) GetTimestamp() string {
if x != nil {
return x.Timestamp
}
return ""
}
func (x *Transaction) GetBlockHash() string {
if x != nil {
return x.BlockHash
}
return ""
}
func (x *Transaction) GetBlockNumber() string {
if x != nil {
return x.BlockNumber
}
return ""
}
func (x *Transaction) GetFromAccount() *User {
if x != nil {
return x.FromAccount
}
return nil
}
func (x *Transaction) GetToAccount() *User {
if x != nil {
return x.ToAccount
}
return nil
}
func (x *Transaction) GetTransactionHash() string {
if x != nil {
return x.TransactionHash
}
return ""
}
func (x *Transaction) GetTransactionIndex() string {
if x != nil {
return x.TransactionIndex
}
return ""
}
type Token struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"`
Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"`
ImageUrl string `protobuf:"bytes,5,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`
Decimals int32 `protobuf:"varint,6,opt,name=decimals,proto3" json:"decimals,omitempty"`
EthPrice string `protobuf:"bytes,7,opt,name=eth_price,json=ethPrice,proto3" json:"eth_price,omitempty"`
UsdPrice string `protobuf:"bytes,8,opt,name=usd_price,json=usdPrice,proto3" json:"usd_price,omitempty"`
}
func (x *Token) Reset() {
*x = Token{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Token) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Token) ProtoMessage() {}
func (x *Token) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 Token.ProtoReflect.Descriptor instead.
func (*Token) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{10}
}
func (x *Token) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *Token) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Token) GetSymbol() string {
if x != nil {
return x.Symbol
}
return ""
}
func (x *Token) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *Token) GetImageUrl() string {
if x != nil {
return x.ImageUrl
}
return ""
}
func (x *Token) GetDecimals() int32 {
if x != nil {
return x.Decimals
}
return 0
}
func (x *Token) GetEthPrice() string {
if x != nil {
return x.EthPrice
}
return ""
}
func (x *Token) GetUsdPrice() string {
if x != nil {
return x.UsdPrice
}
return ""
}
// Return a list of assets
type AssetsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// limit returned assets
Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
// offset for pagination
Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
// order "asc" or "desc"
Order string `protobuf:"bytes,3,opt,name=order,proto3" json:"order,omitempty"`
// order by "sale_date", "sale_count", "sale_price", "total_price"
OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
// limit to members of a collection by slug name (case sensitive)
Collection string `protobuf:"bytes,5,opt,name=collection,proto3" json:"collection,omitempty"`
}
func (x *AssetsRequest) Reset() {
*x = AssetsRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AssetsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssetsRequest) ProtoMessage() {}
func (x *AssetsRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 AssetsRequest.ProtoReflect.Descriptor instead.
func (*AssetsRequest) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{11}
}
func (x *AssetsRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
func (x *AssetsRequest) GetOffset() int32 {
if x != nil {
return x.Offset
}
return 0
}
func (x *AssetsRequest) GetOrder() string {
if x != nil {
return x.Order
}
return ""
}
func (x *AssetsRequest) GetOrderBy() string {
if x != nil {
return x.OrderBy
}
return ""
}
func (x *AssetsRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
type AssetsResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// list of assets
Assets []*Asset `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"`
}
func (x *AssetsResponse) Reset() {
*x = AssetsResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AssetsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssetsResponse) ProtoMessage() {}
func (x *AssetsResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 AssetsResponse.ProtoReflect.Descriptor instead.
func (*AssetsResponse) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{12}
}
func (x *AssetsResponse) GetAssets() []*Asset {
if x != nil {
return x.Assets
}
return nil
}
type AssetRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"`
TokenId string `protobuf:"bytes,2,opt,name=token_id,json=tokenId,proto3" json:"token_id,omitempty"`
}
func (x *AssetRequest) Reset() {
*x = AssetRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AssetRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssetRequest) ProtoMessage() {}
func (x *AssetRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 AssetRequest.ProtoReflect.Descriptor instead.
func (*AssetRequest) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{13}
}
func (x *AssetRequest) GetContractAddress() string {
if x != nil {
return x.ContractAddress
}
return ""
}
func (x *AssetRequest) GetTokenId() string {
if x != nil {
return x.TokenId
}
return ""
}
type AssetResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Asset *Asset `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"`
}
func (x *AssetResponse) Reset() {
*x = AssetResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AssetResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssetResponse) ProtoMessage() {}
func (x *AssetResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 AssetResponse.ProtoReflect.Descriptor instead.
func (*AssetResponse) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{14}
}
func (x *AssetResponse) GetAsset() *Asset {
if x != nil {
return x.Asset
}
return nil
}
type CollectionRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Slug string `protobuf:"bytes,1,opt,name=slug,proto3" json:"slug,omitempty"`
}
func (x *CollectionRequest) Reset() {
*x = CollectionRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CollectionRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionRequest) ProtoMessage() {}
func (x *CollectionRequest) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 CollectionRequest.ProtoReflect.Descriptor instead.
func (*CollectionRequest) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{15}
}
func (x *CollectionRequest) GetSlug() string {
if x != nil {
return x.Slug
}
return ""
}
type CollectionResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Collection *Collection `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
}
func (x *CollectionResponse) Reset() {
*x = CollectionResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_proto_nft_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CollectionResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionResponse) ProtoMessage() {}
func (x *CollectionResponse) ProtoReflect() protoreflect.Message {
mi := &file_proto_nft_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 CollectionResponse.ProtoReflect.Descriptor instead.
func (*CollectionResponse) Descriptor() ([]byte, []int) {
return file_proto_nft_proto_rawDescGZIP(), []int{16}
}
func (x *CollectionResponse) GetCollection() *Collection {
if x != nil {
return x.Collection
}
return nil
}
var File_proto_nft_proto protoreflect.FileDescriptor
var file_proto_nft_proto_rawDesc = []byte{
0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x66, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x03, 0x6e, 0x66, 0x74, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6f, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69,
0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67,
0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52,
0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x41, 0x73, 0x73,
0x65, 0x74, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x42, 0x0a, 0x12, 0x43, 0x6f, 0x6c,
0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x48, 0x0a,
0x13, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6e, 0x66, 0x74, 0x2e,
0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xf1, 0x03, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65,
0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69,
0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 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,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18,
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12,
0x14, 0x0a, 0x05, 0x73, 0x61, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
0x73, 0x61, 0x6c, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x69,
0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6c,
0x69, 0x6e, 0x6b, 0x12, 0x29, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x2f,
0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x23, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x09, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x07, 0x63, 0x72, 0x65,
0x61, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05,
0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65,
0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x73, 0x61, 0x6c, 0x65, 0x12,
0x26, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x61, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x53, 0x61, 0x6c, 0x65, 0x52, 0x08, 0x6c,
0x61, 0x73, 0x74, 0x53, 0x61, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x69,
0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c,
0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x72,
0x61, 0x69, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72,
0x75, 0x63, 0x74, 0x52, 0x06, 0x74, 0x72, 0x61, 0x69, 0x74, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x08,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 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, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72,
0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e,
0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12,
0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f,
0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12,
0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72,
0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6f, 0x75,
0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x6c,
0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
0x65, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x65, 0x65, 0x73, 0x22, 0xd5, 0x04, 0x0a, 0x0a, 0x43, 0x6f,
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x01, 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, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
0x0a, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6c,
0x75, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12,
0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x25,
0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x41, 0x64,
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x6c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78,
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x61,
0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67,
0x65, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x66,
0x65, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x6c, 0x65,
0x72, 0x46, 0x65, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x61, 0x66, 0x65, 0x6c, 0x69, 0x73,
0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x61, 0x66, 0x65, 0x6c, 0x69, 0x73, 0x74,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x45, 0x0a,
0x17, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d,
0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x15, 0x70,
0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72,
0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x69, 0x74, 0x73, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x74,
0x72, 0x61, 0x69, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e,
0x6e, 0x66, 0x74, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65,
0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74,
0x6f, 0x72, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x6f,
0x72, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
0x73, 0x22, 0x5d, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65,
0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65,
0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x66,
0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 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,
0x22, 0xdc, 0x02, 0x0a, 0x04, 0x53, 0x61, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x73, 0x73,
0x65, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12,
0x25, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c,
0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65,
0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e,
0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f,
0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 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, 0x1d, 0x0a, 0x0a, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x72,
0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x10, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f,
0x0a, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x54, 0x6f, 0x6b, 0x65,
0x6e, 0x52, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22,
0xad, 0x02, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12,
0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a,
0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c,
0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,
0x2c, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72,
0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a,
0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x09, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x74, 0x6f,
0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73,
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61,
0x73, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74,
0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22,
0xd0, 0x01, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08,
0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x5f,
0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x74, 0x68,
0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x64, 0x5f, 0x70, 0x72, 0x69,
0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x64, 0x50, 0x72, 0x69,
0x63, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66,
0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73,
0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65,
0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65,
0x72, 0x42, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x0e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65,
0x74, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x54, 0x0a, 0x0c, 0x41, 0x73, 0x73,
0x65, 0x74, 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, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x22,
0x31, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x20, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x0a, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x05, 0x61, 0x73, 0x73,
0x65, 0x74, 0x22, 0x27, 0x0a, 0x11, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6c, 0x75, 0x67, 0x22, 0x45, 0x0a, 0x12, 0x43,
0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x32, 0xa6, 0x02, 0x0a, 0x03, 0x4e, 0x66, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x41, 0x73,
0x73, 0x65, 0x74, 0x73, 0x12, 0x12, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x41,
0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
0x33, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x6e, 0x66, 0x74, 0x2e,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e,
0x6e, 0x66, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x12, 0x17, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6e,
0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65,
0x74, 0x12, 0x11, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x43, 0x6f,
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x43,
0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x17, 0x2e, 0x6e, 0x66, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x0d, 0x5a, 0x0b, 0x2e,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x6e, 0x66, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
file_proto_nft_proto_rawDescOnce sync.Once
file_proto_nft_proto_rawDescData = file_proto_nft_proto_rawDesc
)
func file_proto_nft_proto_rawDescGZIP() []byte {
file_proto_nft_proto_rawDescOnce.Do(func() {
file_proto_nft_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_nft_proto_rawDescData)
})
return file_proto_nft_proto_rawDescData
}
var file_proto_nft_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_proto_nft_proto_goTypes = []interface{}{
(*CreateRequest)(nil), // 0: nft.CreateRequest
(*CreateResponse)(nil), // 1: nft.CreateResponse
(*CollectionsRequest)(nil), // 2: nft.CollectionsRequest
(*CollectionsResponse)(nil), // 3: nft.CollectionsResponse
(*Asset)(nil), // 4: nft.Asset
(*Contract)(nil), // 5: nft.Contract
(*Collection)(nil), // 6: nft.Collection
(*User)(nil), // 7: nft.User
(*Sale)(nil), // 8: nft.Sale
(*Transaction)(nil), // 9: nft.Transaction
(*Token)(nil), // 10: nft.Token
(*AssetsRequest)(nil), // 11: nft.AssetsRequest
(*AssetsResponse)(nil), // 12: nft.AssetsResponse
(*AssetRequest)(nil), // 13: nft.AssetRequest
(*AssetResponse)(nil), // 14: nft.AssetResponse
(*CollectionRequest)(nil), // 15: nft.CollectionRequest
(*CollectionResponse)(nil), // 16: nft.CollectionResponse
(*structpb.Struct)(nil), // 17: google.protobuf.Struct
}
var file_proto_nft_proto_depIdxs = []int32{
4, // 0: nft.CreateResponse.asset:type_name -> nft.Asset
6, // 1: nft.CollectionsResponse.collections:type_name -> nft.Collection
5, // 2: nft.Asset.contract:type_name -> nft.Contract
6, // 3: nft.Asset.collection:type_name -> nft.Collection
7, // 4: nft.Asset.creator:type_name -> nft.User
7, // 5: nft.Asset.owner:type_name -> nft.User
8, // 6: nft.Asset.last_sale:type_name -> nft.Sale
17, // 7: nft.Asset.traits:type_name -> google.protobuf.Struct
5, // 8: nft.Collection.primary_asset_contracts:type_name -> nft.Contract
17, // 9: nft.Collection.traits:type_name -> google.protobuf.Struct
10, // 10: nft.Collection.payment_tokens:type_name -> nft.Token
17, // 11: nft.Collection.stats:type_name -> google.protobuf.Struct
9, // 12: nft.Sale.transaction:type_name -> nft.Transaction
10, // 13: nft.Sale.payment_token:type_name -> nft.Token
7, // 14: nft.Transaction.from_account:type_name -> nft.User
7, // 15: nft.Transaction.to_account:type_name -> nft.User
4, // 16: nft.AssetsResponse.assets:type_name -> nft.Asset
4, // 17: nft.AssetResponse.asset:type_name -> nft.Asset
6, // 18: nft.CollectionResponse.collection:type_name -> nft.Collection
11, // 19: nft.Nft.Assets:input_type -> nft.AssetsRequest
0, // 20: nft.Nft.Create:input_type -> nft.CreateRequest
2, // 21: nft.Nft.Collections:input_type -> nft.CollectionsRequest
13, // 22: nft.Nft.Asset:input_type -> nft.AssetRequest
15, // 23: nft.Nft.Collection:input_type -> nft.CollectionRequest
12, // 24: nft.Nft.Assets:output_type -> nft.AssetsResponse
1, // 25: nft.Nft.Create:output_type -> nft.CreateResponse
3, // 26: nft.Nft.Collections:output_type -> nft.CollectionsResponse
14, // 27: nft.Nft.Asset:output_type -> nft.AssetResponse
16, // 28: nft.Nft.Collection:output_type -> nft.CollectionResponse
24, // [24:29] is the sub-list for method output_type
19, // [19:24] is the sub-list for method input_type
19, // [19:19] is the sub-list for extension type_name
19, // [19:19] is the sub-list for extension extendee
0, // [0:19] is the sub-list for field type_name
}
func init() { file_proto_nft_proto_init() }
func file_proto_nft_proto_init() {
if File_proto_nft_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_proto_nft_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CollectionsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CollectionsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Asset); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Contract); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Collection); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*User); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Sale); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Transaction); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Token); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AssetsRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AssetsResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AssetRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AssetResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CollectionRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_proto_nft_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CollectionResponse); 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_proto_nft_proto_rawDesc,
NumEnums: 0,
NumMessages: 17,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_proto_nft_proto_goTypes,
DependencyIndexes: file_proto_nft_proto_depIdxs,
MessageInfos: file_proto_nft_proto_msgTypes,
}.Build()
File_proto_nft_proto = out.File
file_proto_nft_proto_rawDesc = nil
file_proto_nft_proto_goTypes = nil
file_proto_nft_proto_depIdxs = nil
}