From 79c97614735cbb34753e211d289ffac254958081 Mon Sep 17 00:00:00 2001 From: harish Date: Thu, 20 Jan 2022 21:04:24 +0530 Subject: [PATCH 01/12] feat: commission for nft sale on marketplace --- app/app.go | 2 + proto/marketplace/v1beta1/genesis.proto | 1 + proto/marketplace/v1beta1/listing.proto | 9 + x/marketplace/genesis.go | 7 +- x/marketplace/keeper/keeper.go | 47 ++++- x/marketplace/keeper/params.go | 23 +++ x/marketplace/types/expected_keepers.go | 5 + x/marketplace/types/genesis.go | 3 +- x/marketplace/types/genesis.pb.go | 75 ++++++-- x/marketplace/types/listing.pb.go | 217 +++++++++++++++++++++--- x/marketplace/types/params.go | 63 +++++++ 11 files changed, 407 insertions(+), 45 deletions(-) create mode 100644 x/marketplace/keeper/params.go create mode 100644 x/marketplace/types/params.go diff --git a/app/app.go b/app/app.go index 11af7c3..2c2b76b 100644 --- a/app/app.go +++ b/app/app.go @@ -357,6 +357,8 @@ func New( app.AccountKeeper, app.BankKeeper, app.ONFTKeeper, + app.DistrKeeper, + app.GetSubspace(marketplacemoduletypes.ModuleName), ) marketplaceModule := marketplacemodule.NewAppModule(appCodec, app.MarketplaceKeeper) diff --git a/proto/marketplace/v1beta1/genesis.proto b/proto/marketplace/v1beta1/genesis.proto index b4e80ef..2db799e 100644 --- a/proto/marketplace/v1beta1/genesis.proto +++ b/proto/marketplace/v1beta1/genesis.proto @@ -10,4 +10,5 @@ message GenesisState { // NFTs that are listed in marketplace repeated Listing listings = 1 [(gogoproto.nullable) = false]; uint64 ListingCount = 2; + Params params = 3 [(gogoproto.nullable) = false]; } \ No newline at end of file diff --git a/proto/marketplace/v1beta1/listing.proto b/proto/marketplace/v1beta1/listing.proto index 900883c..ce996e6 100644 --- a/proto/marketplace/v1beta1/listing.proto +++ b/proto/marketplace/v1beta1/listing.proto @@ -18,3 +18,12 @@ message Listing { ]; string owner = 5 [(gogoproto.moretags) = "yaml:\"owner\""]; } + + +message Params { + string sale_commission = 1 [ + (gogoproto.moretags) = "yaml:\"sale_commission\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} \ No newline at end of file diff --git a/x/marketplace/genesis.go b/x/marketplace/genesis.go index 1c6a6a0..c54ce52 100644 --- a/x/marketplace/genesis.go +++ b/x/marketplace/genesis.go @@ -20,6 +20,7 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) k.SetWithPriceDenom(ctx, l.Price.GetDenom(), l.GetId()) } k.SetListingCount(ctx, genState.ListingCount) + k.SetParams(ctx, genState.Params) // check if the module account exists moduleAcc := k.GetMarketplaceAccount(ctx) @@ -29,9 +30,11 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) } func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { - return types.NewGenesisState(k.GetAllListings(ctx), k.GetListingCount(ctx)) + return types.NewGenesisState(k.GetAllListings(ctx), k.GetListingCount(ctx), k.GetParams(ctx)) } func DefaultGenesisState() *types.GenesisState { - return types.NewGenesisState([]types.Listing{}, 0) + return types.NewGenesisState([]types.Listing{}, 0, types.Params{ + SaleCommission: sdk.NewDecWithPrec(1, 2), // "0.01" or 1% + }) } diff --git a/x/marketplace/keeper/keeper.go b/x/marketplace/keeper/keeper.go index 9b015c4..0ed9626 100644 --- a/x/marketplace/keeper/keeper.go +++ b/x/marketplace/keeper/keeper.go @@ -8,6 +8,7 @@ import ( "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/OmniFlix/marketplace/x/marketplace/types" ) @@ -16,9 +17,11 @@ type Keeper struct { storeKey sdk.StoreKey cdc codec.BinaryCodec - accountKeeper types.AccountKeeper - bankKeeper types.BankKeeper - nftKeeper types.NftKeeper + accountKeeper types.AccountKeeper + bankKeeper types.BankKeeper + nftKeeper types.NftKeeper + distributionKeeper types.DistributionKeeper + paramSpace paramstypes.Subspace } func NewKeeper( @@ -28,18 +31,27 @@ func NewKeeper( accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper, nftKeeper types.NftKeeper, + distrKeeper types.DistributionKeeper, + paramSpace paramstypes.Subspace, ) Keeper { // ensure marketplace module account is set if addr := accountKeeper.GetModuleAddress(types.ModuleName); addr == nil { panic(fmt.Sprintf("%s module account has not been set", types.ModuleName)) } + // set KeyTable if it has not already been set + if !paramSpace.HasKeyTable() { + paramSpace = paramSpace.WithKeyTable(types.ParamKeyTable()) + } + return Keeper{ - storeKey: key, - cdc: cdc, - accountKeeper: accountKeeper, - bankKeeper: bankKeeper, - nftKeeper: nftKeeper, + storeKey: key, + cdc: cdc, + accountKeeper: accountKeeper, + bankKeeper: bankKeeper, + nftKeeper: nftKeeper, + distributionKeeper: distrKeeper, + paramSpace: paramSpace, } } @@ -102,10 +114,27 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress _ = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, buyer, sdk.NewCoins(listing.Price)) return err } - err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sdk.NewCoins(listing.Price)) + saleCommission := k.GetSaleCommission(ctx) + marketplaceCoin := k.GetProportions(ctx, listing.Price, saleCommission) + ownerCoin := listing.Price.Sub(marketplaceCoin) + + err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sdk.NewCoins(ownerCoin)) + if err != nil { + return err + } + err = k.distributionKeeper.FundCommunityPool( + ctx, + sdk.NewCoins(marketplaceCoin), + k.accountKeeper.GetModuleAddress(types.ModuleName), + ) if err != nil { return err } + k.DeleteListing(ctx, listing) return nil } + +func (k Keeper) GetProportions(ctx sdk.Context, totalCoin sdk.Coin, ratio sdk.Dec) sdk.Coin { + return sdk.NewCoin(totalCoin.Denom, totalCoin.Amount.ToDec().Mul(ratio).TruncateInt()) +} \ No newline at end of file diff --git a/x/marketplace/keeper/params.go b/x/marketplace/keeper/params.go new file mode 100644 index 0000000..deac423 --- /dev/null +++ b/x/marketplace/keeper/params.go @@ -0,0 +1,23 @@ +package keeper + +import ( + "github.com/OmniFlix/marketplace/x/marketplace/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// GetParams gets the parameters for the marketplace module. +func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { + k.paramSpace.GetParamSet(ctx, ¶ms) + return params +} + +// SetParams sets the parameters for the marketplace module. +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { + k.paramSpace.SetParamSet(ctx, ¶ms) +} + +// GetSaleCommission returns the current sale commission of marketplace. +func (k Keeper) GetSaleCommission(ctx sdk.Context) (percent sdk.Dec) { + k.paramSpace.Get(ctx, types.ParamStoreKeySaleCommission, &percent) + return percent +} diff --git a/x/marketplace/types/expected_keepers.go b/x/marketplace/types/expected_keepers.go index 29e5db3..3c9d51d 100644 --- a/x/marketplace/types/expected_keepers.go +++ b/x/marketplace/types/expected_keepers.go @@ -28,3 +28,8 @@ type NftKeeper interface { GetDenom(ctx sdk.Context, denomId string) (nftypes.Denom, error) TransferOwnership(ctx sdk.Context, denomId, nftId string, srcOwner, dstOwner sdk.AccAddress) error } + +// DistributionKeeper defines the expected distribution keeper +type DistributionKeeper interface { + FundCommunityPool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error +} \ No newline at end of file diff --git a/x/marketplace/types/genesis.go b/x/marketplace/types/genesis.go index d3b7122..c52506a 100644 --- a/x/marketplace/types/genesis.go +++ b/x/marketplace/types/genesis.go @@ -2,10 +2,11 @@ package types import sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" -func NewGenesisState(listings []Listing, listingCount uint64) *GenesisState { +func NewGenesisState(listings []Listing, listingCount uint64, params Params) *GenesisState { return &GenesisState{ Listings: listings, ListingCount: listingCount, + Params: params, } } diff --git a/x/marketplace/types/genesis.pb.go b/x/marketplace/types/genesis.pb.go index 1ea29f1..37a75b3 100644 --- a/x/marketplace/types/genesis.pb.go +++ b/x/marketplace/types/genesis.pb.go @@ -27,6 +27,7 @@ type GenesisState struct { // NFTs that are listed in marketplace Listings []Listing `protobuf:"bytes,1,rep,name=listings,proto3" json:"listings"` ListingCount uint64 `protobuf:"varint,2,opt,name=ListingCount,proto3" json:"ListingCount,omitempty"` + Params Params `protobuf:"bytes,3,opt,name=params,proto3" json:"params"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -76,6 +77,13 @@ func (m *GenesisState) GetListingCount() uint64 { return 0 } +func (m *GenesisState) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + func init() { proto.RegisterType((*GenesisState)(nil), "OmniFlix.marketplace.v1beta1.GenesisState") } @@ -83,21 +91,23 @@ func init() { func init() { proto.RegisterFile("marketplace/v1beta1/genesis.proto", fileDescriptor_95d6349590cf6647) } var fileDescriptor_95d6349590cf6647 = []byte{ - // 222 bytes of a gzipped FileDescriptorProto + // 251 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xcc, 0x4d, 0x2c, 0xca, 0x4e, 0x2d, 0x29, 0xc8, 0x49, 0x4c, 0x4e, 0xd5, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0xf1, 0xcf, 0xcd, 0xcb, 0x74, 0xcb, 0xc9, 0xac, 0xd0, 0x43, 0x52, 0xab, 0x07, 0x55, 0x2b, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, 0x56, 0xa8, 0x0f, 0x62, 0x41, 0xf4, 0x48, 0x61, 0x35, 0x36, 0x27, 0xb3, - 0xb8, 0x24, 0x33, 0x2f, 0x1d, 0xa2, 0x44, 0xa9, 0x9a, 0x8b, 0xc7, 0x1d, 0x62, 0x4f, 0x70, 0x49, - 0x62, 0x49, 0xaa, 0x90, 0x3b, 0x17, 0x07, 0x54, 0x41, 0xb1, 0x04, 0xa3, 0x02, 0xb3, 0x06, 0xb7, - 0x91, 0xaa, 0x1e, 0x3e, 0x9b, 0xf5, 0x7c, 0x20, 0xaa, 0x9d, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, - 0x82, 0x6b, 0x16, 0x52, 0xe2, 0xe2, 0x81, 0x4a, 0x39, 0xe7, 0x97, 0xe6, 0x95, 0x48, 0x30, 0x29, - 0x30, 0x6a, 0xb0, 0x04, 0xa1, 0x88, 0x39, 0xf9, 0x9e, 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, 0x71, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x3e, 0xcc, - 0x7a, 0x7d, 0x64, 0xdf, 0xa0, 0xf2, 0x4a, 0x2a, 0x0b, 0x52, 0x8b, 0x93, 0xd8, 0xc0, 0x5e, 0x32, - 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xa7, 0x6a, 0xbb, 0x78, 0x4e, 0x01, 0x00, 0x00, + 0xb8, 0x24, 0x33, 0x2f, 0x1d, 0xa2, 0x44, 0x69, 0x3f, 0x23, 0x17, 0x8f, 0x3b, 0xc4, 0xa2, 0xe0, + 0x92, 0xc4, 0x92, 0x54, 0x21, 0x77, 0x2e, 0x0e, 0xa8, 0x8a, 0x62, 0x09, 0x46, 0x05, 0x66, 0x0d, + 0x6e, 0x23, 0x55, 0x3d, 0x7c, 0x56, 0xeb, 0xf9, 0x40, 0x54, 0x3b, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, + 0x10, 0x04, 0xd7, 0x2c, 0xa4, 0xc4, 0xc5, 0x03, 0x95, 0x72, 0xce, 0x2f, 0xcd, 0x2b, 0x91, 0x60, + 0x52, 0x60, 0xd4, 0x60, 0x09, 0x42, 0x11, 0x13, 0x72, 0xe2, 0x62, 0x2b, 0x48, 0x2c, 0x4a, 0xcc, + 0x2d, 0x96, 0x60, 0x56, 0x60, 0xd4, 0xe0, 0x36, 0x52, 0xc1, 0x6f, 0x55, 0x00, 0x58, 0x2d, 0xd4, + 0x26, 0xa8, 0x4e, 0x27, 0xdf, 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, 0x32, + 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x87, 0x99, 0xab, 0x8f, 0x1c, + 0x24, 0xa8, 0xbc, 0x92, 0xca, 0x82, 0xd4, 0xe2, 0x24, 0x36, 0x70, 0xb8, 0x18, 0x03, 0x02, 0x00, + 0x00, 0xff, 0xff, 0xf2, 0x9b, 0xe7, 0x02, 0x93, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -120,6 +130,16 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a if m.ListingCount != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.ListingCount)) i-- @@ -168,6 +188,8 @@ func (m *GenesisState) Size() (n int) { if m.ListingCount != 0 { n += 1 + sovGenesis(uint64(m.ListingCount)) } + l = m.Params.Size() + n += 1 + l + sovGenesis(uint64(l)) return n } @@ -259,6 +281,39 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } + case 3: + 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 default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/marketplace/types/listing.pb.go b/x/marketplace/types/listing.pb.go index b403058..ec3b416 100644 --- a/x/marketplace/types/listing.pb.go +++ b/x/marketplace/types/listing.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" @@ -65,36 +66,78 @@ func (m *Listing) XXX_DiscardUnknown() { var xxx_messageInfo_Listing proto.InternalMessageInfo +type Params struct { + SaleCommission github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=sale_commission,json=saleCommission,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"sale_commission" yaml:"sale_commission"` +} + +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_d6e59dc66a1082ad, []int{1} +} +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 init() { proto.RegisterType((*Listing)(nil), "OmniFlix.marketplace.v1beta1.Listing") + proto.RegisterType((*Params)(nil), "OmniFlix.marketplace.v1beta1.Params") } func init() { proto.RegisterFile("marketplace/v1beta1/listing.proto", fileDescriptor_d6e59dc66a1082ad) } var fileDescriptor_d6e59dc66a1082ad = []byte{ - // 344 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x51, 0xcb, 0x4e, 0xeb, 0x30, - 0x10, 0x4d, 0x7a, 0x6f, 0xda, 0x7b, 0xcd, 0x3b, 0xb0, 0x08, 0x15, 0x72, 0x4a, 0x16, 0xd0, 0x0d, - 0xb6, 0x4a, 0x77, 0x2c, 0x8b, 0x84, 0x54, 0x09, 0x09, 0x91, 0x25, 0x1b, 0x48, 0x62, 0x37, 0x58, - 0x4d, 0xec, 0x28, 0x31, 0x8f, 0xfe, 0x05, 0xdf, 0xc1, 0x97, 0x74, 0xd9, 0x25, 0xab, 0x00, 0xed, - 0x1f, 0x74, 0x8f, 0x84, 0x62, 0xb7, 0xa2, 0xac, 0x7c, 0x7c, 0xe6, 0xcc, 0xcc, 0x99, 0x19, 0x70, - 0x98, 0x06, 0xf9, 0x90, 0xca, 0x2c, 0x09, 0x22, 0x8a, 0x1f, 0x3b, 0x21, 0x95, 0x41, 0x07, 0x27, - 0xac, 0x90, 0x8c, 0xc7, 0x28, 0xcb, 0x85, 0x14, 0xf6, 0xc1, 0x55, 0xca, 0xd9, 0x45, 0xc2, 0x9e, - 0xd1, 0x8a, 0x16, 0x2d, 0xb4, 0x4d, 0x18, 0x89, 0x22, 0x15, 0x05, 0x0e, 0x83, 0xe2, 0xa7, 0x40, - 0x24, 0x18, 0xd7, 0xd9, 0xcd, 0xbd, 0x58, 0xc4, 0x42, 0x41, 0x5c, 0x21, 0xcd, 0x7a, 0x5f, 0x26, - 0x68, 0x5c, 0xea, 0x2e, 0xf6, 0x26, 0xa8, 0x31, 0xe2, 0x98, 0x2d, 0xb3, 0xfd, 0xdf, 0xaf, 0x31, - 0x62, 0xb7, 0x41, 0x9d, 0x0f, 0xe4, 0x2d, 0x23, 0x4e, 0xad, 0xe2, 0x7a, 0x3b, 0xf3, 0xd2, 0xdd, - 0x18, 0x05, 0x69, 0x72, 0xe6, 0x69, 0xde, 0xf3, 0x2d, 0x3e, 0x90, 0x7d, 0x62, 0x23, 0xf0, 0x8f, - 0x50, 0x2e, 0xd2, 0x4a, 0xfb, 0x47, 0x69, 0x77, 0xe7, 0xa5, 0xbb, 0xa5, 0xb5, 0xcb, 0x88, 0xe7, - 0x37, 0x14, 0xec, 0x13, 0xfb, 0x0e, 0x58, 0x59, 0xce, 0x22, 0xea, 0xfc, 0x6d, 0x99, 0xed, 0xb5, - 0xd3, 0x7d, 0xa4, 0xbd, 0xa3, 0xca, 0xfb, 0x72, 0x20, 0x74, 0x2e, 0x18, 0xef, 0xe1, 0x71, 0xe9, - 0x1a, 0xaf, 0xef, 0xee, 0x71, 0xcc, 0xe4, 0xfd, 0x43, 0x88, 0x22, 0x91, 0xe2, 0xc5, 0xa0, 0xfa, - 0x39, 0x29, 0xc8, 0x10, 0xcb, 0x51, 0x46, 0x0b, 0x95, 0xe0, 0xeb, 0xc2, 0xf6, 0x11, 0xb0, 0xc4, - 0x13, 0xa7, 0xb9, 0x63, 0x29, 0x3b, 0xdb, 0xf3, 0xd2, 0x5d, 0xd7, 0x76, 0x14, 0xed, 0xf9, 0x3a, - 0xdc, 0xbb, 0x1e, 0x7f, 0x42, 0x63, 0x3c, 0x85, 0xe6, 0x64, 0x0a, 0xcd, 0x8f, 0x29, 0x34, 0x5f, - 0x66, 0xd0, 0x98, 0xcc, 0xa0, 0xf1, 0x36, 0x83, 0xc6, 0x4d, 0x77, 0xa5, 0xeb, 0x72, 0xf9, 0x78, - 0xf5, 0x50, 0xbf, 0x7f, 0xca, 0x46, 0x58, 0x57, 0x9b, 0xed, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, - 0xd7, 0x44, 0x9f, 0xb1, 0xd2, 0x01, 0x00, 0x00, + // 401 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcf, 0x8e, 0xd3, 0x30, + 0x10, 0xc6, 0x93, 0x42, 0xba, 0x60, 0x60, 0x17, 0x02, 0x42, 0x61, 0x85, 0x9c, 0x25, 0x87, 0xd2, + 0x0b, 0xb6, 0x4a, 0x6f, 0x1c, 0x53, 0x84, 0xa8, 0x84, 0x04, 0xe4, 0xc8, 0xa5, 0x38, 0x89, 0x1b, + 0xac, 0xc6, 0x76, 0x88, 0xcd, 0x9f, 0x8a, 0x97, 0xe0, 0x39, 0x78, 0x92, 0x1e, 0x7b, 0x44, 0x1c, + 0x02, 0xb4, 0x6f, 0x90, 0x3b, 0x12, 0x8a, 0xdd, 0x42, 0xe1, 0xb4, 0xa7, 0x4c, 0xbe, 0xf9, 0x66, + 0xe6, 0x37, 0x99, 0x80, 0x7b, 0x9c, 0xd4, 0x0b, 0xaa, 0xab, 0x92, 0x64, 0x14, 0xbf, 0x1f, 0xa5, + 0x54, 0x93, 0x11, 0x2e, 0x99, 0xd2, 0x4c, 0x14, 0xa8, 0xaa, 0xa5, 0x96, 0xfe, 0xdd, 0xe7, 0x5c, + 0xb0, 0x27, 0x25, 0xfb, 0x88, 0x0e, 0xbc, 0x68, 0xe7, 0x3d, 0x85, 0x99, 0x54, 0x5c, 0x2a, 0x9c, + 0x12, 0xf5, 0xb7, 0x41, 0x26, 0x99, 0xb0, 0xd5, 0xa7, 0xb7, 0x0a, 0x59, 0x48, 0x13, 0xe2, 0x2e, + 0xb2, 0x6a, 0xf4, 0xcb, 0x05, 0x47, 0xcf, 0xec, 0x14, 0xff, 0x18, 0xf4, 0x58, 0x1e, 0xb8, 0x67, + 0xee, 0xf0, 0x72, 0xd2, 0x63, 0xb9, 0x3f, 0x04, 0x7d, 0x31, 0xd7, 0x33, 0x96, 0x07, 0xbd, 0x4e, + 0x8b, 0x6f, 0xb4, 0x4d, 0x78, 0x6d, 0x49, 0x78, 0xf9, 0x28, 0xb2, 0x7a, 0x94, 0x78, 0x62, 0xae, + 0xa7, 0xb9, 0x8f, 0xc0, 0xa5, 0x9c, 0x0a, 0xc9, 0x3b, 0xef, 0x05, 0xe3, 0xbd, 0xd9, 0x36, 0xe1, + 0x89, 0xf5, 0xee, 0x33, 0x51, 0x72, 0x64, 0xc2, 0x69, 0xee, 0xbf, 0x06, 0x5e, 0x55, 0xb3, 0x8c, + 0x06, 0x17, 0xcf, 0xdc, 0xe1, 0x95, 0x87, 0x77, 0x90, 0x65, 0x47, 0x1d, 0xfb, 0x7e, 0x21, 0x34, + 0x91, 0x4c, 0xc4, 0x78, 0xd5, 0x84, 0xce, 0x97, 0xef, 0xe1, 0xfd, 0x82, 0xe9, 0x37, 0xef, 0x52, + 0x94, 0x49, 0x8e, 0x77, 0x8b, 0xda, 0xc7, 0x03, 0x95, 0x2f, 0xb0, 0x5e, 0x56, 0x54, 0x99, 0x82, + 0xc4, 0x36, 0xf6, 0x07, 0xc0, 0x93, 0x1f, 0x04, 0xad, 0x03, 0xcf, 0xe0, 0x5c, 0x6f, 0x9b, 0xf0, + 0xaa, 0xc5, 0x31, 0x72, 0x94, 0xd8, 0x74, 0xf4, 0x09, 0xf4, 0x5f, 0x90, 0x9a, 0x70, 0xe5, 0xbf, + 0x05, 0x27, 0x8a, 0x94, 0x74, 0x96, 0x49, 0xce, 0x99, 0x52, 0x4c, 0x0a, 0xfb, 0x29, 0xe2, 0xa7, + 0x1d, 0xc2, 0xb7, 0x26, 0x1c, 0x9c, 0x03, 0xe1, 0x31, 0xcd, 0xda, 0x26, 0xbc, 0x6d, 0x27, 0xfd, + 0xd7, 0x2e, 0x4a, 0x8e, 0x3b, 0x65, 0xf2, 0x47, 0x88, 0x5f, 0xae, 0x7e, 0x42, 0x67, 0xb5, 0x81, + 0xee, 0x7a, 0x03, 0xdd, 0x1f, 0x1b, 0xe8, 0x7e, 0xde, 0x42, 0x67, 0xbd, 0x85, 0xce, 0xd7, 0x2d, + 0x74, 0x5e, 0x8d, 0x0f, 0xe6, 0xed, 0x2f, 0x8f, 0x0f, 0xff, 0x92, 0x7f, 0xdf, 0x0c, 0x40, 0xda, + 0x37, 0x67, 0x1d, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x1c, 0xaf, 0xc6, 0x98, 0x4f, 0x02, 0x00, + 0x00, } func (m *Listing) Marshal() (dAtA []byte, err error) { @@ -158,6 +201,39 @@ func (m *Listing) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +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 + { + size := m.SaleCommission.Size() + i -= size + if _, err := m.SaleCommission.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintListing(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func encodeVarintListing(dAtA []byte, offset int, v uint64) int { offset -= sovListing(v) base := offset @@ -196,6 +272,17 @@ func (m *Listing) Size() (n int) { return n } +func (m *Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.SaleCommission.Size() + n += 1 + l + sovListing(uint64(l)) + return n +} + func sovListing(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -413,6 +500,90 @@ func (m *Listing) Unmarshal(dAtA []byte) error { } return nil } +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 ErrIntOverflowListing + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + 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 != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SaleCommission", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowListing + } + 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 ErrInvalidLengthListing + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthListing + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SaleCommission.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipListing(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthListing + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipListing(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/marketplace/types/params.go b/x/marketplace/types/params.go new file mode 100644 index 0000000..035cb76 --- /dev/null +++ b/x/marketplace/types/params.go @@ -0,0 +1,63 @@ +package types + +import ( + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// Parameter keys +var ( + ParamStoreKeySaleCommission = []byte("salecommission") +) + +var _ paramtypes.ParamSet = (*Params)(nil) + +// ParamKeyTable returns the parameter key table. +func ParamKeyTable() paramtypes.KeyTable { + return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) +} + +// DefaultParams returns default marketplace parameters +func DefaultParams() Params { + return Params{ + SaleCommission: sdk.NewDecWithPrec(1, 2), // 2% + } +} + +// ParamSetPairs returns the parameter set pairs. +func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { + return paramtypes.ParamSetPairs{ + paramtypes.NewParamSetPair(ParamStoreKeySaleCommission, &p.SaleCommission, validateSaleCommission), + } +} + +// ValidateBasic performs basic validation on marketplace parameters. +func (p Params) ValidateBasic() error { + if p.SaleCommission.IsNegative() || p.SaleCommission.GT(sdk.OneDec()) { + return fmt.Errorf( + "sale commission should be non-negative and less than one: %s", p.SaleCommission, + ) + } + return nil +} + +func validateSaleCommission(i interface{}) error { + v, ok := i.(sdk.Dec) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if v.IsNil() { + return fmt.Errorf("sale commission must be not nil") + } + if v.IsNegative() { + return fmt.Errorf("sale commission must be positive: %s", v) + } + if v.GT(sdk.OneDec()) { + return fmt.Errorf("sale commission too large: %s", v) + } + + return nil +} \ No newline at end of file From 371bc67491386f007c8fd80e51d58bf7c348ce48 Mon Sep 17 00:00:00 2001 From: harish Date: Fri, 21 Jan 2022 21:27:27 +0530 Subject: [PATCH 02/12] feat: cli and rest handlers along with grpc query for marketplace params --- proto/marketplace/v1beta1/query.proto | 15 + x/marketplace/client/cli/query.go | 27 ++ x/marketplace/client/rest/query.go | 25 ++ x/marketplace/keeper/grpc_query.go | 9 + x/marketplace/keeper/keeper.go | 8 +- x/marketplace/keeper/querier.go | 13 + x/marketplace/types/expected_keepers.go | 1 + x/marketplace/types/querier.go | 1 + x/marketplace/types/query.pb.go | 446 +++++++++++++++++++++--- x/marketplace/types/query.pb.gw.go | 65 ++++ 10 files changed, 554 insertions(+), 56 deletions(-) diff --git a/proto/marketplace/v1beta1/query.proto b/proto/marketplace/v1beta1/query.proto index a8c8b82..cc022f3 100644 --- a/proto/marketplace/v1beta1/query.proto +++ b/proto/marketplace/v1beta1/query.proto @@ -9,6 +9,11 @@ import "gogoproto/gogo.proto"; option go_package = "github.com/OmniFlix/marketplace/x/marketplace/types"; service Query { + // Params queries params of the marketplace module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/omniflix/marketplace/v1beta1/params"; + } + rpc Listings(QueryListingsRequest) returns (QueryListingsResponse) { option (google.api.http).get = "/omniflix/marketplace/v1beta1/listings"; } @@ -30,6 +35,16 @@ service Query { } } + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false]; +} + message QueryListingsRequest { string owner = 1; string price_denom = 2 [(gogoproto.moretags) = "yaml:\"price_denom\""]; diff --git a/x/marketplace/client/cli/query.go b/x/marketplace/client/cli/query.go index fd71871..41fd0d7 100644 --- a/x/marketplace/client/cli/query.go +++ b/x/marketplace/client/cli/query.go @@ -24,6 +24,7 @@ func GetQueryCmd() *cobra.Command { RunE: client.ValidateCmd, } cmd.AddCommand( + GetCmdQueryParams(), GetCmdQueryListing(), GetCmdQueryAllListings(), GetCmdQueryListingsByOwner(), @@ -32,6 +33,32 @@ func GetQueryCmd() *cobra.Command { return cmd } +// GetCmdQueryParams implements the query params command. +func GetCmdQueryParams() *cobra.Command { + cmd := &cobra.Command{ + Use: "params", + Args: cobra.NoArgs, + Short: "Query Marketplace params", + RunE: func(cmd *cobra.Command, _ []string) error { + clientCtx, err := client.GetClientQueryContext(cmd) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) + + res, err := queryClient.Params(cmd.Context(), &types.QueryParamsRequest{}) + if err != nil { + return err + } + + return clientCtx.PrintProto(&res.Params) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + return cmd +} + // GetCmdQueryListing implements the query listing command. func GetCmdQueryListing() *cobra.Command { cmd := &cobra.Command{ diff --git a/x/marketplace/client/rest/query.go b/x/marketplace/client/rest/query.go index a748393..56de5b8 100644 --- a/x/marketplace/client/rest/query.go +++ b/x/marketplace/client/rest/query.go @@ -18,6 +18,10 @@ import ( func registerQueryRoutes(cliCtx client.Context, r *mux.Router) { + r.HandleFunc(fmt.Sprintf("/%s/parameters", types.ModuleName), + queryParams(cliCtx), + ).Methods("GET") + r.HandleFunc(fmt.Sprintf("/%s/listing/{%s}", types.ModuleName, RestParamListingId), queryListing(cliCtx), @@ -32,6 +36,27 @@ func registerQueryRoutes(cliCtx client.Context, r *mux.Router) { ).Methods("GET") } +// queryParams +func queryParams(cliCtx client.Context) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, cliCtx, r) + if !ok { + return + } + + res, height, err := cliCtx.QueryWithData( + fmt.Sprintf("custom/%s/%s", types.QuerierRoute, types.QueryParams), nil, + ) + if err != nil { + rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) + return + } + + cliCtx = cliCtx.WithHeight(height) + rest.PostProcessResponse(w, cliCtx, res) + } +} + // queryListing func queryListing(cliCtx client.Context) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { diff --git a/x/marketplace/keeper/grpc_query.go b/x/marketplace/keeper/grpc_query.go index 3526c06..075b0f4 100644 --- a/x/marketplace/keeper/grpc_query.go +++ b/x/marketplace/keeper/grpc_query.go @@ -15,6 +15,15 @@ import ( var _ types.QueryServer = Keeper{} +// Params queries params of marketplace module +func (k Keeper) Params(c context.Context, req *types.QueryParamsRequest) (*types.QueryParamsResponse, error) { + ctx := sdk.UnwrapSDKContext(c) + var params types.Params + k.paramSpace.GetParamSet(ctx, ¶ms) + + return &types.QueryParamsResponse{Params: params}, nil +} + func (k Keeper) Listing(goCtx context.Context, req *types.QueryListingRequest) (*types.QueryListingResponse, error) { if req == nil { return nil, status.Errorf(codes.InvalidArgument, "empty request") diff --git a/x/marketplace/keeper/keeper.go b/x/marketplace/keeper/keeper.go index 0ed9626..0e9950d 100644 --- a/x/marketplace/keeper/keeper.go +++ b/x/marketplace/keeper/keeper.go @@ -3,7 +3,6 @@ package keeper import ( "fmt" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/tendermint/tendermint/libs/log" "github.com/cosmos/cosmos-sdk/codec" @@ -122,6 +121,7 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress if err != nil { return err } + err = k.distributionKeeper.FundCommunityPool( ctx, sdk.NewCoins(marketplaceCoin), @@ -131,6 +131,12 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress return err } + /* + err = k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.ModuleName, authtypes.FeeCollectorName, sdk.NewCoins(marketplaceCoin)) + if err != nil { + return err + } */ + k.DeleteListing(ctx, listing) return nil } diff --git a/x/marketplace/keeper/querier.go b/x/marketplace/keeper/querier.go index 24c87e8..3b6e405 100644 --- a/x/marketplace/keeper/querier.go +++ b/x/marketplace/keeper/querier.go @@ -16,6 +16,8 @@ import ( func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { return func(ctx sdk.Context, path []string, req abci.RequestQuery) (res []byte, err error) { switch path[0] { + case types.QueryParams: + return queryParams(ctx, path[1:], req, k, legacyQuerierCdc) case types.QueryListing: return queryListing(ctx, req, k, legacyQuerierCdc) case types.QueryAllListings: @@ -28,6 +30,17 @@ func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { } } +func queryParams(ctx sdk.Context, _ []string, _ abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { + params := k.GetParams(ctx) + + res, err := codec.MarshalJSONIndent(legacyQuerierCdc, params) + if err != nil { + return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) + } + + return res, nil +} + func queryListing(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { var params types.QueryListingParams diff --git a/x/marketplace/types/expected_keepers.go b/x/marketplace/types/expected_keepers.go index 3c9d51d..07903de 100644 --- a/x/marketplace/types/expected_keepers.go +++ b/x/marketplace/types/expected_keepers.go @@ -19,6 +19,7 @@ type BankKeeper interface { SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins SendCoins(ctx sdk.Context, from sdk.AccAddress, to sdk.AccAddress, amount sdk.Coins) error SendCoinsFromModuleToAccount(ctx sdk.Context, formModule string, toAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromModuleToModule(ctx sdk.Context, formModule string, toModule string, amt sdk.Coins) error SendCoinsFromAccountToModule(ctx sdk.Context, fromAddr sdk.AccAddress, toModule string, amt sdk.Coins) error } diff --git a/x/marketplace/types/querier.go b/x/marketplace/types/querier.go index c4219c2..d8de3fb 100644 --- a/x/marketplace/types/querier.go +++ b/x/marketplace/types/querier.go @@ -3,6 +3,7 @@ package types import sdk "github.com/cosmos/cosmos-sdk/types" const ( + QueryParams = "params" QueryListing = "listing" QueryAllListings = "listings" QueryListingsByOwner = "listings-by-owner" diff --git a/x/marketplace/types/query.pb.go b/x/marketplace/types/query.pb.go index c60c97d..d87a7e2 100644 --- a/x/marketplace/types/query.pb.go +++ b/x/marketplace/types/query.pb.go @@ -30,6 +30,89 @@ var _ = math.Inf // 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_cbd1b93dec0689d9, []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_cbd1b93dec0689d9, []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{} +} + type QueryListingsRequest struct { Owner string `protobuf:"bytes,1,opt,name=owner,proto3" json:"owner,omitempty"` PriceDenom string `protobuf:"bytes,2,opt,name=price_denom,json=priceDenom,proto3" json:"price_denom,omitempty" yaml:"price_denom"` @@ -40,7 +123,7 @@ func (m *QueryListingsRequest) Reset() { *m = QueryListingsRequest{} } func (m *QueryListingsRequest) String() string { return proto.CompactTextString(m) } func (*QueryListingsRequest) ProtoMessage() {} func (*QueryListingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{0} + return fileDescriptor_cbd1b93dec0689d9, []int{2} } func (m *QueryListingsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -99,7 +182,7 @@ func (m *QueryListingsResponse) Reset() { *m = QueryListingsResponse{} } func (m *QueryListingsResponse) String() string { return proto.CompactTextString(m) } func (*QueryListingsResponse) ProtoMessage() {} func (*QueryListingsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{1} + return fileDescriptor_cbd1b93dec0689d9, []int{3} } func (m *QueryListingsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -150,7 +233,7 @@ func (m *QueryListingRequest) Reset() { *m = QueryListingRequest{} } func (m *QueryListingRequest) String() string { return proto.CompactTextString(m) } func (*QueryListingRequest) ProtoMessage() {} func (*QueryListingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{2} + return fileDescriptor_cbd1b93dec0689d9, []int{4} } func (m *QueryListingRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -194,7 +277,7 @@ func (m *QueryListingResponse) Reset() { *m = QueryListingResponse{} } func (m *QueryListingResponse) String() string { return proto.CompactTextString(m) } func (*QueryListingResponse) ProtoMessage() {} func (*QueryListingResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{3} + return fileDescriptor_cbd1b93dec0689d9, []int{5} } func (m *QueryListingResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -239,7 +322,7 @@ func (m *QueryListingsByOwnerRequest) Reset() { *m = QueryListingsByOwne func (m *QueryListingsByOwnerRequest) String() string { return proto.CompactTextString(m) } func (*QueryListingsByOwnerRequest) ProtoMessage() {} func (*QueryListingsByOwnerRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{4} + return fileDescriptor_cbd1b93dec0689d9, []int{6} } func (m *QueryListingsByOwnerRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -291,7 +374,7 @@ func (m *QueryListingsByOwnerResponse) Reset() { *m = QueryListingsByOwn func (m *QueryListingsByOwnerResponse) String() string { return proto.CompactTextString(m) } func (*QueryListingsByOwnerResponse) ProtoMessage() {} func (*QueryListingsByOwnerResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{5} + return fileDescriptor_cbd1b93dec0689d9, []int{7} } func (m *QueryListingsByOwnerResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -342,7 +425,7 @@ func (m *QueryListingByNFTIDRequest) Reset() { *m = QueryListingByNFTIDR func (m *QueryListingByNFTIDRequest) String() string { return proto.CompactTextString(m) } func (*QueryListingByNFTIDRequest) ProtoMessage() {} func (*QueryListingByNFTIDRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{6} + return fileDescriptor_cbd1b93dec0689d9, []int{8} } func (m *QueryListingByNFTIDRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -387,7 +470,7 @@ func (m *QueryListingsByPriceDenomRequest) Reset() { *m = QueryListingsB func (m *QueryListingsByPriceDenomRequest) String() string { return proto.CompactTextString(m) } func (*QueryListingsByPriceDenomRequest) ProtoMessage() {} func (*QueryListingsByPriceDenomRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{7} + return fileDescriptor_cbd1b93dec0689d9, []int{9} } func (m *QueryListingsByPriceDenomRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -439,7 +522,7 @@ func (m *QueryListingsByPriceDenomResponse) Reset() { *m = QueryListings func (m *QueryListingsByPriceDenomResponse) String() string { return proto.CompactTextString(m) } func (*QueryListingsByPriceDenomResponse) ProtoMessage() {} func (*QueryListingsByPriceDenomResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cbd1b93dec0689d9, []int{8} + return fileDescriptor_cbd1b93dec0689d9, []int{10} } func (m *QueryListingsByPriceDenomResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -483,6 +566,8 @@ func (m *QueryListingsByPriceDenomResponse) GetPagination() *query.PageResponse } func init() { + proto.RegisterType((*QueryParamsRequest)(nil), "OmniFlix.marketplace.v1beta1.QueryParamsRequest") + proto.RegisterType((*QueryParamsResponse)(nil), "OmniFlix.marketplace.v1beta1.QueryParamsResponse") proto.RegisterType((*QueryListingsRequest)(nil), "OmniFlix.marketplace.v1beta1.QueryListingsRequest") proto.RegisterType((*QueryListingsResponse)(nil), "OmniFlix.marketplace.v1beta1.QueryListingsResponse") proto.RegisterType((*QueryListingRequest)(nil), "OmniFlix.marketplace.v1beta1.QueryListingRequest") @@ -497,52 +582,56 @@ func init() { func init() { proto.RegisterFile("marketplace/v1beta1/query.proto", fileDescriptor_cbd1b93dec0689d9) } var fileDescriptor_cbd1b93dec0689d9 = []byte{ - // 715 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0x4d, 0x6b, 0x13, 0x41, - 0x18, 0xc7, 0x33, 0xa9, 0x7d, 0x71, 0x8a, 0x15, 0xc7, 0x28, 0x21, 0x96, 0x24, 0x5d, 0x68, 0x0d, - 0x4a, 0x76, 0x68, 0x82, 0xd4, 0x16, 0xb4, 0x10, 0x6b, 0x4a, 0xf1, 0xa5, 0x75, 0x11, 0x04, 0x2f, - 0x65, 0x93, 0x4c, 0xd6, 0xc1, 0xec, 0xcc, 0x36, 0xbb, 0xd5, 0x86, 0x90, 0x8b, 0x9f, 0x40, 0xf0, - 0x23, 0x14, 0x0f, 0x1e, 0x04, 0x2f, 0x1e, 0xbd, 0xd7, 0x5b, 0xc1, 0x8b, 0xa7, 0x22, 0x6d, 0x3f, - 0x41, 0x3f, 0x81, 0xec, 0xec, 0x6c, 0x9a, 0x8d, 0x21, 0x6e, 0xf6, 0xd4, 0x53, 0x76, 0x76, 0xe6, - 0x79, 0xf6, 0xf7, 0x7f, 0x9e, 0x79, 0xfe, 0x04, 0x66, 0x4c, 0xbd, 0xf9, 0x96, 0x38, 0x56, 0x43, - 0xaf, 0x12, 0xfc, 0x6e, 0xb1, 0x42, 0x1c, 0x7d, 0x11, 0xef, 0xec, 0x92, 0x66, 0x4b, 0xb5, 0x9a, - 0xdc, 0xe1, 0x68, 0x76, 0xd3, 0x64, 0xb4, 0xdc, 0xa0, 0x7b, 0x6a, 0xcf, 0x49, 0x55, 0x9e, 0x4c, - 0xdd, 0xa9, 0x72, 0xdb, 0xe4, 0x36, 0xae, 0xe8, 0x36, 0xf1, 0xc2, 0xba, 0x49, 0x2c, 0xdd, 0xa0, - 0x4c, 0x77, 0x28, 0x67, 0x5e, 0xa6, 0xd4, 0xac, 0xc1, 0xb9, 0xd1, 0x20, 0x58, 0xb7, 0x28, 0xd6, - 0x19, 0xe3, 0x8e, 0xd8, 0xb4, 0xe5, 0xee, 0xdc, 0x20, 0x90, 0x06, 0xb5, 0x1d, 0xca, 0x0c, 0x79, - 0x24, 0x61, 0x70, 0x83, 0x8b, 0x47, 0xec, 0x3e, 0x79, 0x6f, 0x95, 0xaf, 0x00, 0x26, 0x5e, 0xb8, - 0x5f, 0x7e, 0xea, 0x1d, 0xb6, 0x35, 0xb2, 0xb3, 0x4b, 0x6c, 0x07, 0x25, 0xe0, 0x38, 0x7f, 0xcf, - 0x48, 0x33, 0x09, 0xb2, 0x20, 0x77, 0x59, 0xf3, 0x16, 0x68, 0x09, 0x4e, 0x5b, 0x4d, 0x5a, 0x25, - 0xdb, 0x35, 0xc2, 0xb8, 0x99, 0x8c, 0xbb, 0x7b, 0xa5, 0x9b, 0x67, 0x47, 0x19, 0xd4, 0xd2, 0xcd, - 0xc6, 0x8a, 0xd2, 0xb3, 0xa9, 0x68, 0x50, 0xac, 0xd6, 0xdc, 0x05, 0x2a, 0x43, 0x78, 0x2e, 0x29, - 0x39, 0x96, 0x05, 0xb9, 0xe9, 0xc2, 0x82, 0xea, 0xe9, 0x57, 0x5d, 0xfd, 0xaa, 0x57, 0x36, 0xc9, - 0xae, 0x6e, 0xe9, 0x06, 0x91, 0x28, 0x5a, 0x4f, 0xa4, 0xf2, 0x05, 0xc0, 0x1b, 0x7d, 0xbc, 0xb6, - 0xc5, 0x99, 0x4d, 0xd0, 0x3a, 0x9c, 0x92, 0x82, 0xed, 0x24, 0xc8, 0x8e, 0xe5, 0xa6, 0x0b, 0xf3, - 0xea, 0xb0, 0xea, 0xab, 0x32, 0x43, 0xe9, 0xd2, 0xc1, 0x51, 0x26, 0xa6, 0x75, 0x83, 0xd1, 0x7a, - 0x00, 0x35, 0x2e, 0x50, 0x6f, 0xff, 0x17, 0xd5, 0xa3, 0x08, 0xb0, 0xce, 0xc3, 0xeb, 0xbd, 0xa8, - 0x7e, 0x65, 0x67, 0x60, 0x9c, 0xd6, 0x64, 0x59, 0xe3, 0xb4, 0xa6, 0xbc, 0x0a, 0x76, 0xa0, 0x2b, - 0x68, 0x15, 0x4e, 0x4a, 0x26, 0x71, 0x38, 0xac, 0x1e, 0xcd, 0x8f, 0x52, 0xda, 0xf0, 0x56, 0xa0, - 0x54, 0xa5, 0xd6, 0xa6, 0xdb, 0xc4, 0xe1, 0x1d, 0x2e, 0x0f, 0x50, 0x1f, 0xa5, 0x51, 0xdf, 0x00, - 0x9c, 0x1d, 0xfc, 0xf5, 0x0b, 0xdb, 0xaf, 0x32, 0x4c, 0xf5, 0x12, 0x97, 0x5a, 0xcf, 0xcb, 0x2f, - 0x37, 0xd6, 0xfc, 0x72, 0xe5, 0xe0, 0x04, 0xab, 0x3b, 0xdb, 0x7e, 0xeb, 0x4a, 0xd7, 0xce, 0x8e, - 0x32, 0x57, 0xbc, 0x5b, 0xef, 0xbd, 0x57, 0xb4, 0x71, 0x56, 0x77, 0x36, 0x6a, 0xca, 0x3e, 0x80, - 0xd9, 0x3e, 0xe9, 0x5b, 0xdd, 0x49, 0xf0, 0xd3, 0xf5, 0x4d, 0x12, 0x88, 0x38, 0x49, 0xd1, 0x1b, - 0xf4, 0x1d, 0xc0, 0xb9, 0x21, 0x94, 0x17, 0xb5, 0x4b, 0x85, 0x83, 0x49, 0x38, 0x2e, 0xb8, 0xd1, - 0x3e, 0x80, 0x53, 0x3e, 0x3c, 0x2a, 0x0c, 0xc7, 0x1a, 0xe4, 0x71, 0xa9, 0xe2, 0x48, 0x31, 0x1e, - 0x8b, 0xa2, 0x7e, 0xf8, 0x75, 0xfa, 0x29, 0x9e, 0x43, 0x0b, 0x98, 0x9b, 0x8c, 0xd6, 0x1b, 0x74, - 0x0f, 0x0f, 0x31, 0x5f, 0x1b, 0x7d, 0x06, 0x70, 0x52, 0x26, 0x41, 0x8b, 0xe1, 0x3f, 0xe8, 0x33, - 0x16, 0x46, 0x09, 0x91, 0x88, 0x45, 0x81, 0x98, 0x47, 0x77, 0xc3, 0x21, 0xe2, 0x36, 0xad, 0x75, - 0xd0, 0x4f, 0x00, 0xaf, 0xf6, 0xcd, 0x2a, 0x5a, 0x1e, 0xa1, 0x40, 0x41, 0x77, 0x49, 0xad, 0x44, - 0x09, 0x95, 0xfc, 0xab, 0x82, 0x7f, 0x19, 0x2d, 0x85, 0xe3, 0xcf, 0x57, 0x5a, 0x79, 0x61, 0x5e, - 0xb8, 0x2d, 0x7e, 0x3a, 0xe8, 0x14, 0xc0, 0xc4, 0xa0, 0x6b, 0x8d, 0x1e, 0x8e, 0x44, 0xf5, 0xcf, - 0xd4, 0xa6, 0x56, 0x23, 0xc7, 0x4b, 0x69, 0x4f, 0x84, 0xb4, 0xc7, 0xe8, 0x51, 0x78, 0x69, 0x62, - 0xf6, 0xf3, 0xc2, 0x09, 0x70, 0xbb, 0xc7, 0x16, 0x3a, 0xe8, 0x07, 0x80, 0x33, 0xe7, 0x66, 0xe5, - 0x7a, 0x0f, 0xba, 0x1f, 0x1e, 0x30, 0xe8, 0x6f, 0x91, 0x2e, 0xda, 0x03, 0xa1, 0x66, 0x09, 0xdd, - 0x0b, 0xa5, 0xc6, 0x15, 0xc3, 0xea, 0x0e, 0x6e, 0x7b, 0x7e, 0xd9, 0x29, 0x3d, 0x3b, 0x38, 0x4e, - 0x83, 0xc3, 0xe3, 0x34, 0xf8, 0x73, 0x9c, 0x06, 0x1f, 0x4f, 0xd2, 0xb1, 0xc3, 0x93, 0x74, 0xec, - 0xf7, 0x49, 0x3a, 0xf6, 0xba, 0x68, 0x50, 0xe7, 0xcd, 0x6e, 0x45, 0xad, 0x72, 0x13, 0xfb, 0x58, - 0x81, 0xd4, 0xc1, 0x95, 0xd3, 0xb2, 0x88, 0x5d, 0x99, 0x10, 0x7f, 0x69, 0x8a, 0x7f, 0x03, 0x00, - 0x00, 0xff, 0xff, 0x15, 0xdb, 0xfa, 0x6b, 0x96, 0x09, 0x00, 0x00, + // 777 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0xcf, 0x4f, 0x13, 0x41, + 0x14, 0xc7, 0x3b, 0x45, 0x0a, 0x0e, 0x11, 0xe3, 0x58, 0x0d, 0xa9, 0xa4, 0x85, 0x0d, 0x60, 0xa3, + 0x76, 0xd7, 0xb6, 0x31, 0x08, 0x89, 0x92, 0xac, 0x58, 0x42, 0xfc, 0x01, 0x6e, 0x4c, 0x8c, 0x5e, + 0xc8, 0xb6, 0x9d, 0xae, 0x13, 0xbb, 0x3b, 0x4b, 0x77, 0x51, 0x9a, 0xa6, 0x17, 0xff, 0x02, 0x13, + 0x8f, 0x1e, 0x89, 0x07, 0x0f, 0x26, 0x5e, 0x3c, 0x7a, 0xc7, 0x1b, 0x89, 0x17, 0x4f, 0xc4, 0x00, + 0xf1, 0x0f, 0xe0, 0x2f, 0x30, 0x3b, 0x33, 0x5b, 0xba, 0xa5, 0xa9, 0xdb, 0x9e, 0x38, 0x75, 0x67, + 0x66, 0xdf, 0x7b, 0x9f, 0xf7, 0x7d, 0x3b, 0xdf, 0x14, 0xa6, 0x4c, 0xbd, 0xf6, 0x06, 0xbb, 0x76, + 0x55, 0x2f, 0x61, 0xe5, 0x6d, 0xb6, 0x88, 0x5d, 0x3d, 0xab, 0x6c, 0x6e, 0xe1, 0x5a, 0x5d, 0xb6, + 0x6b, 0xd4, 0xa5, 0x68, 0x72, 0xcd, 0xb4, 0x48, 0xa1, 0x4a, 0xb6, 0xe5, 0xb6, 0x37, 0x65, 0xf1, + 0x66, 0xe2, 0x46, 0x89, 0x3a, 0x26, 0x75, 0x94, 0xa2, 0xee, 0x60, 0x1e, 0xd6, 0x4a, 0x62, 0xeb, + 0x06, 0xb1, 0x74, 0x97, 0x50, 0x8b, 0x67, 0x4a, 0x4c, 0x1a, 0x94, 0x1a, 0x55, 0xac, 0xe8, 0x36, + 0x51, 0x74, 0xcb, 0xa2, 0x2e, 0x3b, 0x74, 0xc4, 0xe9, 0x74, 0x37, 0x90, 0x2a, 0x71, 0x5c, 0x62, + 0x19, 0xe2, 0x95, 0xb8, 0x41, 0x0d, 0xca, 0x1e, 0x15, 0xef, 0x89, 0xef, 0x4a, 0x71, 0x88, 0x9e, + 0x79, 0x85, 0xd7, 0xf5, 0x9a, 0x6e, 0x3a, 0x1a, 0xde, 0xdc, 0xc2, 0x8e, 0x2b, 0xbd, 0x84, 0x97, + 0x03, 0xbb, 0x8e, 0x4d, 0x2d, 0x07, 0x23, 0x15, 0xc6, 0x6c, 0xb6, 0x33, 0x01, 0xa6, 0x40, 0x7a, + 0x2c, 0x37, 0x23, 0xf7, 0x6a, 0x4f, 0xe6, 0xd1, 0xea, 0xb9, 0xdd, 0xfd, 0x54, 0x44, 0x13, 0x91, + 0xd2, 0x57, 0x00, 0xe3, 0x2c, 0xf7, 0x63, 0x4e, 0xe7, 0xd7, 0x44, 0x71, 0x38, 0x4c, 0xdf, 0x59, + 0xb8, 0xc6, 0x72, 0x9f, 0xd7, 0xf8, 0x02, 0xcd, 0xc3, 0x31, 0xbb, 0x46, 0x4a, 0x78, 0xa3, 0x8c, + 0x2d, 0x6a, 0x4e, 0x44, 0xbd, 0x33, 0xf5, 0xea, 0xf1, 0x7e, 0x0a, 0xd5, 0x75, 0xb3, 0xba, 0x28, + 0xb5, 0x1d, 0x4a, 0x1a, 0x64, 0xab, 0x65, 0x6f, 0x81, 0x0a, 0x10, 0x9e, 0x68, 0x38, 0x31, 0xc4, + 0x78, 0xe7, 0x64, 0x2e, 0xb8, 0xec, 0x09, 0x2e, 0xf3, 0x39, 0x9d, 0xc0, 0x1a, 0x58, 0xa0, 0x68, + 0x6d, 0x91, 0xd2, 0x17, 0x00, 0xaf, 0x74, 0xf0, 0x0a, 0x35, 0x56, 0xe0, 0xa8, 0x50, 0xd8, 0xd3, + 0x63, 0x28, 0x3d, 0x96, 0x9b, 0xed, 0xad, 0x87, 0xc8, 0x20, 0x04, 0x69, 0x05, 0xa3, 0x95, 0x00, + 0x6a, 0x94, 0xa1, 0x5e, 0xff, 0x2f, 0x2a, 0xa7, 0x08, 0xb0, 0xce, 0x8a, 0xb1, 0x89, 0x42, 0xbe, + 0xb2, 0xe3, 0x30, 0x4a, 0xca, 0x42, 0xd6, 0x28, 0x29, 0x4b, 0x2f, 0x82, 0x13, 0x68, 0x35, 0xb4, + 0x04, 0x47, 0x04, 0x93, 0x98, 0x6f, 0xb8, 0x7e, 0x34, 0x3f, 0x4a, 0x6a, 0xc0, 0x6b, 0x01, 0xa9, + 0xd4, 0xfa, 0x9a, 0x37, 0xc4, 0xde, 0x13, 0x2e, 0x74, 0xe9, 0x7e, 0x90, 0x41, 0x7d, 0x03, 0x70, + 0xb2, 0x7b, 0xf5, 0x33, 0x3b, 0xaf, 0x02, 0x4c, 0xb4, 0x13, 0xab, 0xf5, 0xa7, 0x85, 0xe7, 0xab, + 0xcb, 0xbe, 0x5c, 0x69, 0x18, 0xb3, 0x2a, 0xee, 0x86, 0x3f, 0x3a, 0xf5, 0xd2, 0xf1, 0x7e, 0xea, + 0x02, 0xff, 0xea, 0xf9, 0xbe, 0xa4, 0x0d, 0x5b, 0x15, 0x77, 0xb5, 0x2c, 0xed, 0x00, 0x38, 0xd5, + 0xd1, 0xfa, 0x7a, 0xeb, 0x26, 0xf8, 0xe9, 0x3a, 0x6e, 0x12, 0x18, 0xf0, 0x26, 0x0d, 0x3e, 0xa0, + 0xef, 0x00, 0x4e, 0xf7, 0xa0, 0x3c, 0xab, 0x53, 0xca, 0xfd, 0x1d, 0x85, 0xc3, 0x8c, 0x1b, 0x7d, + 0x02, 0x30, 0xc6, 0x4d, 0x0d, 0xdd, 0xee, 0x0d, 0x75, 0xda, 0x53, 0x13, 0xd9, 0x3e, 0x22, 0x38, + 0x85, 0x74, 0xeb, 0xfd, 0xaf, 0xa3, 0x8f, 0xd1, 0x39, 0x34, 0xa3, 0x50, 0xd3, 0x22, 0x95, 0x2a, + 0xd9, 0x56, 0xba, 0xf9, 0x3c, 0x77, 0x56, 0xb4, 0x03, 0xe0, 0xa8, 0x2f, 0x2d, 0xca, 0x85, 0xa8, + 0xd6, 0xe1, 0xc0, 0x89, 0x7c, 0x5f, 0x31, 0x82, 0x51, 0x66, 0x8c, 0x69, 0x34, 0xd7, 0x9b, 0xb1, + 0x35, 0x96, 0xcf, 0x00, 0x8e, 0x88, 0x24, 0x28, 0x1b, 0xbe, 0xa0, 0xcf, 0x98, 0xeb, 0x27, 0x44, + 0x20, 0xe6, 0x19, 0x62, 0x06, 0xdd, 0x0c, 0x87, 0xa8, 0x34, 0x48, 0xb9, 0x89, 0x7e, 0x02, 0x78, + 0xb1, 0xc3, 0x49, 0xd0, 0x42, 0x1f, 0x02, 0x05, 0xbd, 0x2f, 0xb1, 0x38, 0x48, 0xa8, 0xe0, 0x5f, + 0x62, 0xfc, 0x0b, 0x68, 0x3e, 0x1c, 0x7f, 0xa6, 0x58, 0xcf, 0x30, 0x6b, 0x55, 0x1a, 0xec, 0xa7, + 0x89, 0x8e, 0x00, 0x8c, 0x77, 0xbb, 0x74, 0xe8, 0x7e, 0x5f, 0x54, 0xa7, 0x3c, 0x25, 0xb1, 0x34, + 0x70, 0xbc, 0x68, 0xed, 0x11, 0x6b, 0xed, 0x21, 0x7a, 0x10, 0xbe, 0x35, 0xe6, 0x4c, 0x19, 0xe6, + 0x53, 0x4a, 0xa3, 0xcd, 0xb4, 0x9a, 0xe8, 0x07, 0x80, 0xe3, 0x27, 0x56, 0xea, 0x39, 0x23, 0xba, + 0x1b, 0x1e, 0x30, 0xe8, 0xbe, 0x03, 0x7d, 0x68, 0xf7, 0x58, 0x37, 0xf3, 0xe8, 0x4e, 0xa8, 0x6e, + 0xbc, 0x66, 0xac, 0x8a, 0xab, 0x34, 0xb8, 0x9b, 0x37, 0xd5, 0x27, 0xbb, 0x07, 0x49, 0xb0, 0x77, + 0x90, 0x04, 0x7f, 0x0e, 0x92, 0xe0, 0xc3, 0x61, 0x32, 0xb2, 0x77, 0x98, 0x8c, 0xfc, 0x3e, 0x4c, + 0x46, 0x5e, 0xe5, 0x0d, 0xe2, 0xbe, 0xde, 0x2a, 0xca, 0x25, 0x6a, 0x2a, 0x3e, 0x56, 0x20, 0x75, + 0x70, 0xe5, 0xd6, 0x6d, 0xec, 0x14, 0x63, 0xec, 0x1f, 0x5e, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xd7, 0x3c, 0xe5, 0xbd, 0xa5, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -557,6 +646,8 @@ const _ = grpc.SupportPackageIsVersion4 // // 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 queries params of the marketplace module. + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) Listings(ctx context.Context, in *QueryListingsRequest, opts ...grpc.CallOption) (*QueryListingsResponse, error) Listing(ctx context.Context, in *QueryListingRequest, opts ...grpc.CallOption) (*QueryListingResponse, error) ListingsByOwner(ctx context.Context, in *QueryListingsByOwnerRequest, opts ...grpc.CallOption) (*QueryListingsByOwnerResponse, error) @@ -572,6 +663,15 @@ 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, "/OmniFlix.marketplace.v1beta1.Query/Params", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) Listings(ctx context.Context, in *QueryListingsRequest, opts ...grpc.CallOption) (*QueryListingsResponse, error) { out := new(QueryListingsResponse) err := c.cc.Invoke(ctx, "/OmniFlix.marketplace.v1beta1.Query/Listings", in, out, opts...) @@ -619,6 +719,8 @@ func (c *queryClient) ListingByNftId(ctx context.Context, in *QueryListingByNFTI // QueryServer is the server API for Query service. type QueryServer interface { + // Params queries params of the marketplace module. + Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) Listings(context.Context, *QueryListingsRequest) (*QueryListingsResponse, error) Listing(context.Context, *QueryListingRequest) (*QueryListingResponse, error) ListingsByOwner(context.Context, *QueryListingsByOwnerRequest) (*QueryListingsByOwnerResponse, error) @@ -630,6 +732,9 @@ type QueryServer interface { 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) Listings(ctx context.Context, req *QueryListingsRequest) (*QueryListingsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Listings not implemented") } @@ -650,6 +755,24 @@ 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: "/OmniFlix.marketplace.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_Listings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryListingsRequest) if err := dec(in); err != nil { @@ -744,6 +867,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "OmniFlix.marketplace.v1beta1.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, { MethodName: "Listings", Handler: _Query_Listings_Handler, @@ -769,6 +896,62 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Metadata: "marketplace/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 *QueryListingsRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1155,6 +1338,26 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { 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 *QueryListingsRequest) Size() (n int) { if m == nil { return 0 @@ -1312,6 +1515,139 @@ func sovQuery(x uint64) (n int) { 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 *QueryListingsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/marketplace/types/query.pb.gw.go b/x/marketplace/types/query.pb.gw.go index bd4d2d4..3a9179f 100644 --- a/x/marketplace/types/query.pb.gw.go +++ b/x/marketplace/types/query.pb.gw.go @@ -33,6 +33,24 @@ var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage var _ = metadata.Join +func request_Query_Params_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryParamsRequest + var metadata runtime.ServerMetadata + + msg, err := client.Params(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryParamsRequest + var metadata runtime.ServerMetadata + + msg, err := server.Params(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_Query_Listings_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -327,6 +345,29 @@ func local_request_Query_ListingByNftId_0(ctx context.Context, marshaler runtime // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { + mux.Handle("GET", pattern_Query_Params_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) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_Params_0(rctx, 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) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Params_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_Listings_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -483,6 +524,26 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc // "QueryClient" to call the correct interceptors. func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error { + mux.Handle("GET", pattern_Query_Params_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) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_Params_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Params_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_Query_Listings_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -587,6 +648,8 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( + pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"omniflix", "marketplace", "v1beta1", "params"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Listings_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"omniflix", "marketplace", "v1beta1", "listings"}, "", runtime.AssumeColonVerbOpt(true))) pattern_Query_Listing_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"omniflix", "marketplace", "v1beta1", "listings", "id"}, "", runtime.AssumeColonVerbOpt(true))) @@ -599,6 +662,8 @@ var ( ) var ( + forward_Query_Params_0 = runtime.ForwardResponseMessage + forward_Query_Listings_0 = runtime.ForwardResponseMessage forward_Query_Listing_0 = runtime.ForwardResponseMessage From 77ec5ad34941f41c90bd8357dfcf7e1d15241583 Mon Sep 17 00:00:00 2001 From: harish Date: Mon, 24 Jan 2022 22:08:56 +0530 Subject: [PATCH 03/12] bump sdk version to v0.45.0 --- app/app.go | 19 +++++++++++++++++-- go.mod | 5 ++--- go.sum | 13 +++++++++---- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/app/app.go b/app/app.go index 2c2b76b..4c80ef3 100644 --- a/app/app.go +++ b/app/app.go @@ -26,6 +26,7 @@ import ( authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/cosmos/cosmos-sdk/x/auth/vesting" + vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" "github.com/cosmos/cosmos-sdk/x/bank" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -412,10 +413,20 @@ func New( app.mm.SetOrderBeginBlockers( upgradetypes.ModuleName, capabilitytypes.ModuleName, minttypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName, evidencetypes.ModuleName, stakingtypes.ModuleName, ibchost.ModuleName, - feegrant.ModuleName, + feegrant.ModuleName, marketplacemoduletypes.ModuleName, onfttypes.ModuleName, ibctransfertypes.ModuleName, authtypes.ModuleName, + vestingtypes.ModuleName, govtypes.ModuleName, genutiltypes.ModuleName, crisistypes.ModuleName, + paramstypes.ModuleName, banktypes.ModuleName, ) - app.mm.SetOrderEndBlockers(crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName) + app.mm.SetOrderEndBlockers( + crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, + upgradetypes.ModuleName, capabilitytypes.ModuleName, minttypes.ModuleName, distrtypes.ModuleName, slashingtypes.ModuleName, + evidencetypes.ModuleName, stakingtypes.ModuleName, ibchost.ModuleName, + feegrant.ModuleName, marketplacemoduletypes.ModuleName, onfttypes.ModuleName, ibctransfertypes.ModuleName, authtypes.ModuleName, + vestingtypes.ModuleName, genutiltypes.ModuleName, + paramstypes.ModuleName, banktypes.ModuleName, + ) + // NOTE: The genutils module must occur after staking so that pools are // properly initialized with tokens from genesis accounts. @@ -436,6 +447,10 @@ func New( genutiltypes.ModuleName, evidencetypes.ModuleName, ibctransfertypes.ModuleName, + feegrant.ModuleName, + paramstypes.ModuleName, + vestingtypes.ModuleName, + upgradetypes.ModuleName, onfttypes.ModuleName, marketplacemoduletypes.ModuleName, // this line is used by starport scaffolding # stargate/app/initGenesis diff --git a/go.mod b/go.mod index 71bd680..9c23bc1 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.16 require ( github.com/OmniFlix/onft v0.2.0 - github.com/cosmos/cosmos-sdk v0.44.3 + github.com/cosmos/cosmos-sdk v0.45.0 github.com/cosmos/ibc-go v1.2.2 github.com/fsnotify/fsnotify v1.5.1 // indirect github.com/gogo/protobuf v1.3.3 @@ -22,9 +22,8 @@ require ( github.com/tendermint/spm v0.1.8 github.com/tendermint/tendermint v0.34.14 github.com/tendermint/tm-db v0.6.4 - golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 // indirect google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83 - google.golang.org/grpc v1.40.0 + google.golang.org/grpc v1.42.0 gopkg.in/ini.v1 v1.63.2 // indirect ) diff --git a/go.sum b/go.sum index db8f9fa..a71aa65 100644 --- a/go.sum +++ b/go.sum @@ -189,8 +189,9 @@ github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coinbase/rosetta-sdk-go v0.6.10 h1:rgHD/nHjxLh0lMEdfGDqpTtlvtSBwULqrrZ2qPdNaCM= github.com/coinbase/rosetta-sdk-go v0.6.10/go.mod h1:J/JFMsfcePrjJZkwQFLh+hJErkAmdm9Iyy3D5Y0LfXo= +github.com/coinbase/rosetta-sdk-go v0.7.0 h1:lmTO/JEpCvZgpbkOITL95rA80CPKb5CtMzLaqF2mCNg= +github.com/coinbase/rosetta-sdk-go v0.7.0/go.mod h1:7nD3oBPIiHqhRprqvMgPoGxe/nyq3yftRmpsy29coWE= github.com/confio/ics23/go v0.0.0-20200817220745-f173e6211efb/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg= github.com/confio/ics23/go v0.6.3/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg= github.com/confio/ics23/go v0.6.6 h1:pkOy18YxxJ/r0XFDCnrl4Bjv6h4LkBSpLS6F38mrKL8= @@ -211,17 +212,21 @@ github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44= +github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU= github.com/cosmos/cosmos-sdk v0.44.2/go.mod h1:fwQJdw+aECatpTvQTo1tSfHEsxACdZYU80QCZUPnHr4= -github.com/cosmos/cosmos-sdk v0.44.3 h1:F71n1jCqPi4F0wXg8AU4AUdUF8llw0x3D3o6aLt/j2A= github.com/cosmos/cosmos-sdk v0.44.3/go.mod h1:bA3+VenaR/l/vDiYzaiwbWvRPWHMBX2jG0ygiFtiBp0= +github.com/cosmos/cosmos-sdk v0.45.0 h1:DHD+CIRZ+cYgiLXuTEUL/aprnfPsWSwaww/fIZEsZlk= +github.com/cosmos/cosmos-sdk v0.45.0/go.mod h1:XXS/asyCqWNWkx2rW6pSuen+EVcpAFxq6khrhnZgHaQ= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/iavl v0.15.0-rc3.0.20201009144442-230e9bdf52cd/go.mod h1:3xOIaNNX19p0QrX0VqWa6voPRoJRGGYtny+DH8NEPvE= github.com/cosmos/iavl v0.15.0-rc5/go.mod h1:WqoPL9yPTQ85QBMT45OOUzPxG/U/JcJoN7uMjgxke/I= github.com/cosmos/iavl v0.15.3/go.mod h1:OLjQiAQ4fGD2KDZooyJG9yz+p2ao2IAYSbke8mVvSA4= -github.com/cosmos/iavl v0.17.1 h1:b/Cl8h1PRMvsu24+TYNlKchIu7W6tmxIBGe6E9u2Ybw= github.com/cosmos/iavl v0.17.1/go.mod h1:7aisPZK8yCpQdy3PMvKeO+bhq1NwDjUwjzxwwROUxFk= +github.com/cosmos/iavl v0.17.3 h1:s2N819a2olOmiauVa0WAhoIJq9EhSXE9HDBAoR9k+8Y= +github.com/cosmos/iavl v0.17.3/go.mod h1:prJoErZFABYZGDHka1R6Oay4z9PrNeFFiMKHDAMOi4w= github.com/cosmos/ibc-go v1.2.2 h1:bs6TZ8Es1kycIu2AHlRZ9dzJ+mveqlLN/0sjWtRH88o= github.com/cosmos/ibc-go v1.2.2/go.mod h1:XmYjsRFOs6Q9Cz+CSsX21icNoH27vQKb3squgnCOCbs= github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4= @@ -276,7 +281,6 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25 h1:2vLKys4RBU4pn2T/hjXMbvwTr1Cvy5THHrQkbeY9HRk= github.com/enigmampc/btcutil v1.0.3-0.20200723161021-e2fb6adb2a25/go.mod h1:hTr8+TLQmkUkgcuh3mcr5fjrT9c64ZzsBCdCEC6UppY= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= @@ -1528,6 +1532,7 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83 h1:3V2dxSZpz4zozWWUq36vUxXEKnSYitEH2LdsAx+RUmg= google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= From 273c3f16d24074f93a372d359717dedcf305a026 Mon Sep 17 00:00:00 2001 From: harish Date: Sat, 12 Feb 2022 16:40:03 +0530 Subject: [PATCH 04/12] feat: marketplace commission distribution params --- proto/marketplace/v1beta1/genesis.proto | 1 + proto/marketplace/v1beta1/params.proto | 31 ++++++++ proto/marketplace/v1beta1/query.proto | 1 + x/marketplace/types/genesis.pb.go | 25 +++--- x/marketplace/types/query.pb.go | 100 ++++++++++++------------ 5 files changed, 96 insertions(+), 62 deletions(-) create mode 100644 proto/marketplace/v1beta1/params.proto diff --git a/proto/marketplace/v1beta1/genesis.proto b/proto/marketplace/v1beta1/genesis.proto index 2db799e..f5663cd 100644 --- a/proto/marketplace/v1beta1/genesis.proto +++ b/proto/marketplace/v1beta1/genesis.proto @@ -3,6 +3,7 @@ package OmniFlix.marketplace.v1beta1; import "gogoproto/gogo.proto"; import "marketplace/v1beta1/listing.proto"; +import "marketplace/v1beta1/params.proto"; option go_package = "github.com/OmniFlix/marketplace/x/marketplace/types"; diff --git a/proto/marketplace/v1beta1/params.proto b/proto/marketplace/v1beta1/params.proto new file mode 100644 index 0000000..43c4db9 --- /dev/null +++ b/proto/marketplace/v1beta1/params.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package OmniFlix.marketplace.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/OmniFlix/marketplace/x/marketplace/types"; +option (gogoproto.goproto_getters_all) = false; + + + +message Params { + string sale_commission = 1 [ + (gogoproto.moretags) = "yaml:\"sale_commission\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + Distribution distribution = 2 [(gogoproto.nullable) = false]; +} + +message Distribution { + string staking = 1 [ + (gogoproto.moretags) = "yaml:\"staking\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + string community_pool = 2 [ + (gogoproto.moretags) = "yaml:\"community_pool\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} \ No newline at end of file diff --git a/proto/marketplace/v1beta1/query.proto b/proto/marketplace/v1beta1/query.proto index cc022f3..7580e7e 100644 --- a/proto/marketplace/v1beta1/query.proto +++ b/proto/marketplace/v1beta1/query.proto @@ -4,6 +4,7 @@ package OmniFlix.marketplace.v1beta1; import "cosmos/base/query/v1beta1/pagination.proto"; import "google/api/annotations.proto"; import "marketplace/v1beta1/listing.proto"; +import "marketplace/v1beta1/params.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/OmniFlix/marketplace/x/marketplace/types"; diff --git a/x/marketplace/types/genesis.pb.go b/x/marketplace/types/genesis.pb.go index 37a75b3..95ab84d 100644 --- a/x/marketplace/types/genesis.pb.go +++ b/x/marketplace/types/genesis.pb.go @@ -91,23 +91,24 @@ func init() { func init() { proto.RegisterFile("marketplace/v1beta1/genesis.proto", fileDescriptor_95d6349590cf6647) } var fileDescriptor_95d6349590cf6647 = []byte{ - // 251 bytes of a gzipped FileDescriptorProto + // 258 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xcc, 0x4d, 0x2c, 0xca, 0x4e, 0x2d, 0x29, 0xc8, 0x49, 0x4c, 0x4e, 0xd5, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0xf1, 0xcf, 0xcd, 0xcb, 0x74, 0xcb, 0xc9, 0xac, 0xd0, 0x43, 0x52, 0xab, 0x07, 0x55, 0x2b, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, 0x56, 0xa8, 0x0f, 0x62, 0x41, 0xf4, 0x48, 0x61, 0x35, 0x36, 0x27, 0xb3, - 0xb8, 0x24, 0x33, 0x2f, 0x1d, 0xa2, 0x44, 0x69, 0x3f, 0x23, 0x17, 0x8f, 0x3b, 0xc4, 0xa2, 0xe0, - 0x92, 0xc4, 0x92, 0x54, 0x21, 0x77, 0x2e, 0x0e, 0xa8, 0x8a, 0x62, 0x09, 0x46, 0x05, 0x66, 0x0d, - 0x6e, 0x23, 0x55, 0x3d, 0x7c, 0x56, 0xeb, 0xf9, 0x40, 0x54, 0x3b, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, - 0x10, 0x04, 0xd7, 0x2c, 0xa4, 0xc4, 0xc5, 0x03, 0x95, 0x72, 0xce, 0x2f, 0xcd, 0x2b, 0x91, 0x60, - 0x52, 0x60, 0xd4, 0x60, 0x09, 0x42, 0x11, 0x13, 0x72, 0xe2, 0x62, 0x2b, 0x48, 0x2c, 0x4a, 0xcc, - 0x2d, 0x96, 0x60, 0x56, 0x60, 0xd4, 0xe0, 0x36, 0x52, 0xc1, 0x6f, 0x55, 0x00, 0x58, 0x2d, 0xd4, - 0x26, 0xa8, 0x4e, 0x27, 0xdf, 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, 0x32, - 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x87, 0x99, 0xab, 0x8f, 0x1c, - 0x24, 0xa8, 0xbc, 0x92, 0xca, 0x82, 0xd4, 0xe2, 0x24, 0x36, 0x70, 0xb8, 0x18, 0x03, 0x02, 0x00, - 0x00, 0xff, 0xff, 0xf2, 0x9b, 0xe7, 0x02, 0x93, 0x01, 0x00, 0x00, + 0xb8, 0x24, 0x33, 0x2f, 0x1d, 0xaa, 0x44, 0x01, 0x9b, 0x92, 0x82, 0xc4, 0xa2, 0xc4, 0x5c, 0xa8, + 0xc5, 0x4a, 0xfb, 0x19, 0xb9, 0x78, 0xdc, 0x21, 0x4e, 0x09, 0x2e, 0x49, 0x2c, 0x49, 0x15, 0x72, + 0xe7, 0xe2, 0x80, 0x9a, 0x51, 0x2c, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0xaa, 0x87, 0xcf, + 0x71, 0x7a, 0x3e, 0x10, 0xd5, 0x4e, 0x2c, 0x27, 0xee, 0xc9, 0x33, 0x04, 0xc1, 0x35, 0x0b, 0x29, + 0x71, 0xf1, 0x40, 0xa5, 0x9c, 0xf3, 0x4b, 0xf3, 0x4a, 0x24, 0x98, 0x14, 0x18, 0x35, 0x58, 0x82, + 0x50, 0xc4, 0x84, 0x9c, 0xb8, 0xd8, 0x20, 0xae, 0x91, 0x60, 0x56, 0x60, 0xd4, 0xe0, 0x36, 0x52, + 0xc1, 0x6f, 0x55, 0x00, 0x58, 0x2d, 0xd4, 0x26, 0xa8, 0x4e, 0x27, 0xdf, 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, 0x32, 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, + 0xcf, 0xd5, 0x87, 0x99, 0xab, 0x8f, 0x1c, 0x22, 0xa8, 0xbc, 0x92, 0xca, 0x82, 0xd4, 0xe2, 0x24, + 0x36, 0x70, 0xb8, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x90, 0xb5, 0xee, 0xcc, 0xb5, 0x01, + 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/x/marketplace/types/query.pb.go b/x/marketplace/types/query.pb.go index d87a7e2..8fa23b3 100644 --- a/x/marketplace/types/query.pb.go +++ b/x/marketplace/types/query.pb.go @@ -582,56 +582,56 @@ func init() { func init() { proto.RegisterFile("marketplace/v1beta1/query.proto", fileDescriptor_cbd1b93dec0689d9) } var fileDescriptor_cbd1b93dec0689d9 = []byte{ - // 777 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0xcf, 0x4f, 0x13, 0x41, - 0x14, 0xc7, 0x3b, 0x45, 0x0a, 0x0e, 0x11, 0xe3, 0x58, 0x0d, 0xa9, 0xa4, 0x85, 0x0d, 0x60, 0xa3, - 0x76, 0xd7, 0xb6, 0x31, 0x08, 0x89, 0x92, 0xac, 0x58, 0x42, 0xfc, 0x01, 0x6e, 0x4c, 0x8c, 0x5e, - 0xc8, 0xb6, 0x9d, 0xae, 0x13, 0xbb, 0x3b, 0x4b, 0x77, 0x51, 0x9a, 0xa6, 0x17, 0xff, 0x02, 0x13, - 0x8f, 0x1e, 0x89, 0x07, 0x0f, 0x26, 0x5e, 0x3c, 0x7a, 0xc7, 0x1b, 0x89, 0x17, 0x4f, 0xc4, 0x00, - 0xf1, 0x0f, 0xe0, 0x2f, 0x30, 0x3b, 0x33, 0x5b, 0xba, 0xa5, 0xa9, 0xdb, 0x9e, 0x38, 0x75, 0x67, - 0x66, 0xdf, 0x7b, 0x9f, 0xf7, 0x7d, 0x3b, 0xdf, 0x14, 0xa6, 0x4c, 0xbd, 0xf6, 0x06, 0xbb, 0x76, - 0x55, 0x2f, 0x61, 0xe5, 0x6d, 0xb6, 0x88, 0x5d, 0x3d, 0xab, 0x6c, 0x6e, 0xe1, 0x5a, 0x5d, 0xb6, - 0x6b, 0xd4, 0xa5, 0x68, 0x72, 0xcd, 0xb4, 0x48, 0xa1, 0x4a, 0xb6, 0xe5, 0xb6, 0x37, 0x65, 0xf1, - 0x66, 0xe2, 0x46, 0x89, 0x3a, 0x26, 0x75, 0x94, 0xa2, 0xee, 0x60, 0x1e, 0xd6, 0x4a, 0x62, 0xeb, - 0x06, 0xb1, 0x74, 0x97, 0x50, 0x8b, 0x67, 0x4a, 0x4c, 0x1a, 0x94, 0x1a, 0x55, 0xac, 0xe8, 0x36, - 0x51, 0x74, 0xcb, 0xa2, 0x2e, 0x3b, 0x74, 0xc4, 0xe9, 0x74, 0x37, 0x90, 0x2a, 0x71, 0x5c, 0x62, - 0x19, 0xe2, 0x95, 0xb8, 0x41, 0x0d, 0xca, 0x1e, 0x15, 0xef, 0x89, 0xef, 0x4a, 0x71, 0x88, 0x9e, - 0x79, 0x85, 0xd7, 0xf5, 0x9a, 0x6e, 0x3a, 0x1a, 0xde, 0xdc, 0xc2, 0x8e, 0x2b, 0xbd, 0x84, 0x97, - 0x03, 0xbb, 0x8e, 0x4d, 0x2d, 0x07, 0x23, 0x15, 0xc6, 0x6c, 0xb6, 0x33, 0x01, 0xa6, 0x40, 0x7a, - 0x2c, 0x37, 0x23, 0xf7, 0x6a, 0x4f, 0xe6, 0xd1, 0xea, 0xb9, 0xdd, 0xfd, 0x54, 0x44, 0x13, 0x91, - 0xd2, 0x57, 0x00, 0xe3, 0x2c, 0xf7, 0x63, 0x4e, 0xe7, 0xd7, 0x44, 0x71, 0x38, 0x4c, 0xdf, 0x59, - 0xb8, 0xc6, 0x72, 0x9f, 0xd7, 0xf8, 0x02, 0xcd, 0xc3, 0x31, 0xbb, 0x46, 0x4a, 0x78, 0xa3, 0x8c, - 0x2d, 0x6a, 0x4e, 0x44, 0xbd, 0x33, 0xf5, 0xea, 0xf1, 0x7e, 0x0a, 0xd5, 0x75, 0xb3, 0xba, 0x28, - 0xb5, 0x1d, 0x4a, 0x1a, 0x64, 0xab, 0x65, 0x6f, 0x81, 0x0a, 0x10, 0x9e, 0x68, 0x38, 0x31, 0xc4, - 0x78, 0xe7, 0x64, 0x2e, 0xb8, 0xec, 0x09, 0x2e, 0xf3, 0x39, 0x9d, 0xc0, 0x1a, 0x58, 0xa0, 0x68, - 0x6d, 0x91, 0xd2, 0x17, 0x00, 0xaf, 0x74, 0xf0, 0x0a, 0x35, 0x56, 0xe0, 0xa8, 0x50, 0xd8, 0xd3, - 0x63, 0x28, 0x3d, 0x96, 0x9b, 0xed, 0xad, 0x87, 0xc8, 0x20, 0x04, 0x69, 0x05, 0xa3, 0x95, 0x00, - 0x6a, 0x94, 0xa1, 0x5e, 0xff, 0x2f, 0x2a, 0xa7, 0x08, 0xb0, 0xce, 0x8a, 0xb1, 0x89, 0x42, 0xbe, - 0xb2, 0xe3, 0x30, 0x4a, 0xca, 0x42, 0xd6, 0x28, 0x29, 0x4b, 0x2f, 0x82, 0x13, 0x68, 0x35, 0xb4, - 0x04, 0x47, 0x04, 0x93, 0x98, 0x6f, 0xb8, 0x7e, 0x34, 0x3f, 0x4a, 0x6a, 0xc0, 0x6b, 0x01, 0xa9, - 0xd4, 0xfa, 0x9a, 0x37, 0xc4, 0xde, 0x13, 0x2e, 0x74, 0xe9, 0x7e, 0x90, 0x41, 0x7d, 0x03, 0x70, - 0xb2, 0x7b, 0xf5, 0x33, 0x3b, 0xaf, 0x02, 0x4c, 0xb4, 0x13, 0xab, 0xf5, 0xa7, 0x85, 0xe7, 0xab, - 0xcb, 0xbe, 0x5c, 0x69, 0x18, 0xb3, 0x2a, 0xee, 0x86, 0x3f, 0x3a, 0xf5, 0xd2, 0xf1, 0x7e, 0xea, - 0x02, 0xff, 0xea, 0xf9, 0xbe, 0xa4, 0x0d, 0x5b, 0x15, 0x77, 0xb5, 0x2c, 0xed, 0x00, 0x38, 0xd5, - 0xd1, 0xfa, 0x7a, 0xeb, 0x26, 0xf8, 0xe9, 0x3a, 0x6e, 0x12, 0x18, 0xf0, 0x26, 0x0d, 0x3e, 0xa0, - 0xef, 0x00, 0x4e, 0xf7, 0xa0, 0x3c, 0xab, 0x53, 0xca, 0xfd, 0x1d, 0x85, 0xc3, 0x8c, 0x1b, 0x7d, - 0x02, 0x30, 0xc6, 0x4d, 0x0d, 0xdd, 0xee, 0x0d, 0x75, 0xda, 0x53, 0x13, 0xd9, 0x3e, 0x22, 0x38, - 0x85, 0x74, 0xeb, 0xfd, 0xaf, 0xa3, 0x8f, 0xd1, 0x39, 0x34, 0xa3, 0x50, 0xd3, 0x22, 0x95, 0x2a, - 0xd9, 0x56, 0xba, 0xf9, 0x3c, 0x77, 0x56, 0xb4, 0x03, 0xe0, 0xa8, 0x2f, 0x2d, 0xca, 0x85, 0xa8, - 0xd6, 0xe1, 0xc0, 0x89, 0x7c, 0x5f, 0x31, 0x82, 0x51, 0x66, 0x8c, 0x69, 0x34, 0xd7, 0x9b, 0xb1, - 0x35, 0x96, 0xcf, 0x00, 0x8e, 0x88, 0x24, 0x28, 0x1b, 0xbe, 0xa0, 0xcf, 0x98, 0xeb, 0x27, 0x44, - 0x20, 0xe6, 0x19, 0x62, 0x06, 0xdd, 0x0c, 0x87, 0xa8, 0x34, 0x48, 0xb9, 0x89, 0x7e, 0x02, 0x78, - 0xb1, 0xc3, 0x49, 0xd0, 0x42, 0x1f, 0x02, 0x05, 0xbd, 0x2f, 0xb1, 0x38, 0x48, 0xa8, 0xe0, 0x5f, - 0x62, 0xfc, 0x0b, 0x68, 0x3e, 0x1c, 0x7f, 0xa6, 0x58, 0xcf, 0x30, 0x6b, 0x55, 0x1a, 0xec, 0xa7, - 0x89, 0x8e, 0x00, 0x8c, 0x77, 0xbb, 0x74, 0xe8, 0x7e, 0x5f, 0x54, 0xa7, 0x3c, 0x25, 0xb1, 0x34, - 0x70, 0xbc, 0x68, 0xed, 0x11, 0x6b, 0xed, 0x21, 0x7a, 0x10, 0xbe, 0x35, 0xe6, 0x4c, 0x19, 0xe6, - 0x53, 0x4a, 0xa3, 0xcd, 0xb4, 0x9a, 0xe8, 0x07, 0x80, 0xe3, 0x27, 0x56, 0xea, 0x39, 0x23, 0xba, - 0x1b, 0x1e, 0x30, 0xe8, 0xbe, 0x03, 0x7d, 0x68, 0xf7, 0x58, 0x37, 0xf3, 0xe8, 0x4e, 0xa8, 0x6e, - 0xbc, 0x66, 0xac, 0x8a, 0xab, 0x34, 0xb8, 0x9b, 0x37, 0xd5, 0x27, 0xbb, 0x07, 0x49, 0xb0, 0x77, - 0x90, 0x04, 0x7f, 0x0e, 0x92, 0xe0, 0xc3, 0x61, 0x32, 0xb2, 0x77, 0x98, 0x8c, 0xfc, 0x3e, 0x4c, - 0x46, 0x5e, 0xe5, 0x0d, 0xe2, 0xbe, 0xde, 0x2a, 0xca, 0x25, 0x6a, 0x2a, 0x3e, 0x56, 0x20, 0x75, - 0x70, 0xe5, 0xd6, 0x6d, 0xec, 0x14, 0x63, 0xec, 0x1f, 0x5e, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xd7, 0x3c, 0xe5, 0xbd, 0xa5, 0x0a, 0x00, 0x00, + // 782 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0x4f, 0x4f, 0x13, 0x4f, + 0x18, 0xc7, 0x3b, 0xe5, 0x47, 0xe1, 0x37, 0x44, 0x8c, 0x63, 0x35, 0xa4, 0x92, 0x16, 0x36, 0x80, + 0x8d, 0xda, 0x5d, 0xdb, 0xc6, 0x20, 0x24, 0x4a, 0xb2, 0x62, 0x09, 0xf1, 0x0f, 0xb8, 0x31, 0x31, + 0x7a, 0x21, 0xdb, 0x76, 0xba, 0x4e, 0xec, 0xee, 0x2c, 0xdd, 0x45, 0x69, 0x9a, 0x5e, 0x7c, 0x05, + 0x26, 0x1e, 0x3d, 0x12, 0x0f, 0x1e, 0x4c, 0xbc, 0x78, 0xf4, 0x8e, 0x37, 0x12, 0x2f, 0x9e, 0x88, + 0x01, 0xe2, 0x0b, 0xe0, 0x15, 0x98, 0x9d, 0x99, 0x2d, 0xdd, 0x52, 0xeb, 0xb6, 0x27, 0x4e, 0xdd, + 0xd9, 0x99, 0xe7, 0x79, 0x3e, 0xcf, 0xf3, 0xdd, 0xf9, 0xa6, 0x30, 0x65, 0xea, 0xb5, 0x57, 0xd8, + 0xb5, 0xab, 0x7a, 0x09, 0x2b, 0xaf, 0xb3, 0x45, 0xec, 0xea, 0x59, 0x65, 0x73, 0x0b, 0xd7, 0xea, + 0xb2, 0x5d, 0xa3, 0x2e, 0x45, 0x93, 0x6b, 0xa6, 0x45, 0x0a, 0x55, 0xb2, 0x2d, 0xb7, 0x9d, 0x94, + 0xc5, 0xc9, 0xc4, 0xb5, 0x12, 0x75, 0x4c, 0xea, 0x28, 0x45, 0xdd, 0xc1, 0x3c, 0xac, 0x95, 0xc4, + 0xd6, 0x0d, 0x62, 0xe9, 0x2e, 0xa1, 0x16, 0xcf, 0x94, 0x98, 0x34, 0x28, 0x35, 0xaa, 0x58, 0xd1, + 0x6d, 0xa2, 0xe8, 0x96, 0x45, 0x5d, 0xb6, 0xe9, 0x88, 0xdd, 0xe9, 0x6e, 0x20, 0x55, 0xe2, 0xb8, + 0xc4, 0x32, 0xc4, 0x91, 0xa9, 0x6e, 0x47, 0x6c, 0xbd, 0xa6, 0x9b, 0x7e, 0x92, 0xb8, 0x41, 0x0d, + 0xca, 0x1e, 0x15, 0xef, 0x89, 0xbf, 0x95, 0xe2, 0x10, 0x3d, 0xf1, 0xd0, 0xd6, 0xd9, 0x51, 0x0d, + 0x6f, 0x6e, 0x61, 0xc7, 0x95, 0x9e, 0xc3, 0x8b, 0x81, 0xb7, 0x8e, 0x4d, 0x2d, 0x07, 0x23, 0x15, + 0xc6, 0x78, 0xca, 0x09, 0x30, 0x05, 0xd2, 0x63, 0xb9, 0x19, 0xb9, 0xd7, 0x00, 0x64, 0x1e, 0xad, + 0xfe, 0xb7, 0xbb, 0x9f, 0x8a, 0x68, 0x22, 0x52, 0xfa, 0x0c, 0x60, 0x9c, 0xe5, 0x7e, 0xc8, 0xf9, + 0xfd, 0x9a, 0x28, 0x0e, 0x87, 0xe9, 0x1b, 0x0b, 0xd7, 0x58, 0xee, 0xff, 0x35, 0xbe, 0x40, 0xf3, + 0x70, 0xcc, 0xae, 0x91, 0x12, 0xde, 0x28, 0x63, 0x8b, 0x9a, 0x13, 0x51, 0x6f, 0x4f, 0xbd, 0x7c, + 0xbc, 0x9f, 0x42, 0x75, 0xdd, 0xac, 0x2e, 0x4a, 0x6d, 0x9b, 0x92, 0x06, 0xd9, 0x6a, 0xd9, 0x5b, + 0xa0, 0x02, 0x84, 0x27, 0x53, 0x9e, 0x18, 0x62, 0xbc, 0x73, 0x32, 0x97, 0x44, 0xf6, 0x24, 0x91, + 0xb9, 0x92, 0x27, 0xb0, 0x06, 0x16, 0x28, 0x5a, 0x5b, 0xa4, 0xf4, 0x09, 0xc0, 0x4b, 0x1d, 0xbc, + 0x62, 0x1a, 0x2b, 0x70, 0x54, 0x68, 0xe0, 0xcd, 0x63, 0x28, 0x3d, 0x96, 0x9b, 0xed, 0x3d, 0x0f, + 0x91, 0x41, 0x0c, 0xa4, 0x15, 0x8c, 0x56, 0x02, 0xa8, 0x51, 0x86, 0x7a, 0xf5, 0x9f, 0xa8, 0x9c, + 0x22, 0xc0, 0x3a, 0x2b, 0x64, 0x13, 0x85, 0xfc, 0xc9, 0x8e, 0xc3, 0x28, 0x29, 0x8b, 0xb1, 0x46, + 0x49, 0x59, 0x7a, 0x16, 0x54, 0xa0, 0xd5, 0xd0, 0x12, 0x1c, 0x11, 0x4c, 0x42, 0xdf, 0x70, 0xfd, + 0x68, 0x7e, 0x94, 0xd4, 0x80, 0x57, 0x02, 0xa3, 0x52, 0xeb, 0x6b, 0x9e, 0x88, 0xbd, 0x15, 0x2e, + 0x74, 0xe9, 0x7e, 0x10, 0xa1, 0xbe, 0x00, 0x38, 0xd9, 0xbd, 0xfa, 0x99, 0xd5, 0xab, 0x00, 0x13, + 0xed, 0xc4, 0x6a, 0xfd, 0x71, 0xe1, 0xe9, 0xea, 0xb2, 0x3f, 0xae, 0x34, 0x8c, 0x59, 0x15, 0x77, + 0xc3, 0x97, 0x4e, 0xbd, 0x70, 0xbc, 0x9f, 0x3a, 0xc7, 0xbf, 0x7a, 0xfe, 0x5e, 0xd2, 0x86, 0xad, + 0x8a, 0xbb, 0x5a, 0x96, 0x76, 0x00, 0x9c, 0xea, 0x68, 0x7d, 0xbd, 0x75, 0x13, 0xfc, 0x74, 0x1d, + 0x37, 0x09, 0x0c, 0x78, 0x93, 0x06, 0x17, 0xe8, 0x2b, 0x80, 0xd3, 0x3d, 0x28, 0xcf, 0xaa, 0x4a, + 0xb9, 0xdf, 0xa3, 0x70, 0x98, 0x71, 0xa3, 0x0f, 0x00, 0xc6, 0xb8, 0xa9, 0xa1, 0x9b, 0xbd, 0xa1, + 0x4e, 0x7b, 0x6a, 0x22, 0xdb, 0x47, 0x04, 0xa7, 0x90, 0x6e, 0xbc, 0xfd, 0x71, 0xf4, 0x3e, 0x3a, + 0x87, 0x66, 0x14, 0x6a, 0x5a, 0xa4, 0x52, 0x25, 0xdb, 0xca, 0xdf, 0x6d, 0x1e, 0xed, 0x00, 0x38, + 0xea, 0x8f, 0x16, 0xe5, 0x42, 0x54, 0xeb, 0x70, 0xe0, 0x44, 0xbe, 0xaf, 0x18, 0xc1, 0x28, 0x33, + 0xc6, 0x34, 0x9a, 0xeb, 0xcd, 0xd8, 0x92, 0xe5, 0x23, 0x80, 0x23, 0x22, 0x09, 0xca, 0x86, 0x2f, + 0xe8, 0x33, 0xe6, 0xfa, 0x09, 0x11, 0x88, 0x79, 0x86, 0x98, 0x41, 0xd7, 0xc3, 0x21, 0x2a, 0x0d, + 0x52, 0x6e, 0xa2, 0xef, 0x00, 0x9e, 0xef, 0x70, 0x12, 0xb4, 0xd0, 0xc7, 0x80, 0x82, 0xde, 0x97, + 0x58, 0x1c, 0x24, 0x54, 0xf0, 0x2f, 0x31, 0xfe, 0x05, 0x34, 0x1f, 0x8e, 0x3f, 0x53, 0xac, 0x67, + 0x98, 0xb5, 0x2a, 0x0d, 0xf6, 0xd3, 0x44, 0x47, 0x00, 0xc6, 0xbb, 0x5d, 0x3a, 0x74, 0xb7, 0x2f, + 0xaa, 0x53, 0x9e, 0x92, 0x58, 0x1a, 0x38, 0x5e, 0xb4, 0xf6, 0x80, 0xb5, 0x76, 0x1f, 0xdd, 0x0b, + 0xdf, 0x1a, 0x73, 0xa6, 0x0c, 0xf3, 0x29, 0xa5, 0xd1, 0x66, 0x5a, 0x4d, 0xf4, 0x0d, 0xc0, 0xf1, + 0x13, 0x2b, 0xf5, 0x9c, 0x11, 0xdd, 0x0e, 0x0f, 0x18, 0x74, 0xdf, 0x81, 0x3e, 0xb4, 0x3b, 0xac, + 0x9b, 0x79, 0x74, 0x2b, 0x54, 0x37, 0x5e, 0x33, 0x56, 0xc5, 0x55, 0x1a, 0xdc, 0xcd, 0x9b, 0xea, + 0xa3, 0xdd, 0x83, 0x24, 0xd8, 0x3b, 0x48, 0x82, 0x5f, 0x07, 0x49, 0xf0, 0xee, 0x30, 0x19, 0xd9, + 0x3b, 0x4c, 0x46, 0x7e, 0x1e, 0x26, 0x23, 0x2f, 0xf2, 0x06, 0x71, 0x5f, 0x6e, 0x15, 0xe5, 0x12, + 0x35, 0x15, 0x1f, 0x2b, 0x90, 0x3a, 0xb8, 0x72, 0xeb, 0x36, 0x76, 0x8a, 0x31, 0xf6, 0x0f, 0x2f, + 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x31, 0x8d, 0x5b, 0x06, 0xc7, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. From 8111dcbc61dbebfafb6273133e3868844f870200 Mon Sep 17 00:00:00 2001 From: harish Date: Sat, 12 Feb 2022 17:02:56 +0530 Subject: [PATCH 05/12] add: params proto generated file --- x/marketplace/types/params.pb.go | 583 +++++++++++++++++++++++++++++++ 1 file changed, 583 insertions(+) create mode 100644 x/marketplace/types/params.pb.go diff --git a/x/marketplace/types/params.pb.go b/x/marketplace/types/params.pb.go new file mode 100644 index 0000000..dd2bdd9 --- /dev/null +++ b/x/marketplace/types/params.pb.go @@ -0,0 +1,583 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: marketplace/v1beta1/params.proto + +package types + +import ( + fmt "fmt" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/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 Params struct { + SaleCommission github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=sale_commission,json=saleCommission,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"sale_commission" yaml:"sale_commission"` + Distribution Distribution `protobuf:"bytes,2,opt,name=distribution,proto3" json:"distribution"` +} + +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_930108a08bf00b01, []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 + +type Distribution struct { + Staking github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=staking,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"staking" yaml:"staking"` + CommunityPool github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=community_pool,json=communityPool,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"community_pool" yaml:"community_pool"` +} + +func (m *Distribution) Reset() { *m = Distribution{} } +func (m *Distribution) String() string { return proto.CompactTextString(m) } +func (*Distribution) ProtoMessage() {} +func (*Distribution) Descriptor() ([]byte, []int) { + return fileDescriptor_930108a08bf00b01, []int{1} +} +func (m *Distribution) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Distribution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Distribution.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Distribution) XXX_Merge(src proto.Message) { + xxx_messageInfo_Distribution.Merge(m, src) +} +func (m *Distribution) XXX_Size() int { + return m.Size() +} +func (m *Distribution) XXX_DiscardUnknown() { + xxx_messageInfo_Distribution.DiscardUnknown(m) +} + +var xxx_messageInfo_Distribution proto.InternalMessageInfo + +func init() { + proto.RegisterType((*Params)(nil), "OmniFlix.marketplace.v1beta1.Params") + proto.RegisterType((*Distribution)(nil), "OmniFlix.marketplace.v1beta1.Distribution") +} + +func init() { proto.RegisterFile("marketplace/v1beta1/params.proto", fileDescriptor_930108a08bf00b01) } + +var fileDescriptor_930108a08bf00b01 = []byte{ + // 344 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0x1b, 0x91, 0xc9, 0xe2, 0x9c, 0x50, 0x54, 0x44, 0x24, 0x1b, 0x3d, 0xc8, 0x10, 0x4c, + 0x99, 0xbb, 0x79, 0x92, 0x3a, 0xd4, 0x9b, 0xb3, 0x78, 0xda, 0x65, 0xa4, 0x5d, 0xa9, 0x61, 0x4d, + 0xff, 0xb5, 0xc9, 0xc4, 0xbd, 0x85, 0x8f, 0xb5, 0xe3, 0xbc, 0xc9, 0x0e, 0x43, 0xb7, 0x37, 0xf0, + 0x09, 0xa4, 0x5d, 0x37, 0x5a, 0x0f, 0xc2, 0x4e, 0x6d, 0x3e, 0xbe, 0xff, 0xf7, 0xe5, 0x17, 0xfe, + 0xb8, 0x2e, 0x58, 0x3c, 0xf0, 0x54, 0x14, 0x30, 0xd7, 0x33, 0x5f, 0x9b, 0x8e, 0xa7, 0x58, 0xd3, + 0x8c, 0x58, 0xcc, 0x84, 0xa4, 0x51, 0x0c, 0x0a, 0xf4, 0xd3, 0x07, 0x11, 0xf2, 0xdb, 0x80, 0xbf, + 0xd1, 0x9c, 0x95, 0x66, 0xd6, 0x93, 0x03, 0x1f, 0x7c, 0x48, 0x8d, 0x66, 0xf2, 0xb7, 0x9c, 0x31, + 0x3e, 0x10, 0x2e, 0x75, 0xd2, 0x10, 0xfd, 0x05, 0xef, 0x4b, 0x16, 0x78, 0x3d, 0x17, 0x84, 0xe0, + 0x52, 0x72, 0x08, 0x8f, 0x51, 0x1d, 0x35, 0xca, 0xd6, 0xfd, 0x78, 0x56, 0xd3, 0xa6, 0xb3, 0xda, + 0x99, 0xcf, 0xd5, 0xf3, 0xd0, 0xa1, 0x2e, 0x08, 0xd3, 0x05, 0x29, 0x40, 0x66, 0x9f, 0x0b, 0xd9, + 0x1f, 0x98, 0x6a, 0x14, 0x79, 0x92, 0xb6, 0x3d, 0xf7, 0x67, 0x56, 0x3b, 0x1a, 0x31, 0x11, 0x5c, + 0x19, 0x7f, 0xe2, 0x0c, 0xbb, 0x9a, 0x28, 0x37, 0x6b, 0x41, 0x7f, 0xc2, 0x95, 0x3e, 0x97, 0x2a, + 0xe6, 0xce, 0x50, 0x25, 0x7d, 0x5b, 0x75, 0xd4, 0xd8, 0xbd, 0x3c, 0xa7, 0xff, 0x81, 0xd0, 0x76, + 0x6e, 0xc2, 0xda, 0x4e, 0xee, 0x66, 0x17, 0x52, 0x8c, 0x29, 0xc2, 0x95, 0xbc, 0x49, 0xef, 0xe2, + 0x1d, 0xa9, 0xd8, 0x80, 0x87, 0x7e, 0x46, 0x74, 0xbd, 0x31, 0x51, 0x35, 0x23, 0x5a, 0xc6, 0x18, + 0xf6, 0x2a, 0x50, 0x0f, 0x71, 0x35, 0x21, 0x1c, 0x86, 0x5c, 0x8d, 0x7a, 0x11, 0x40, 0x90, 0x42, + 0x94, 0xad, 0xbb, 0x8d, 0x2b, 0x0e, 0x97, 0x15, 0xc5, 0x34, 0xc3, 0xde, 0x5b, 0x0b, 0x1d, 0x80, + 0xc0, 0x7a, 0x1c, 0x7f, 0x13, 0x6d, 0x3c, 0x27, 0x68, 0x32, 0x27, 0xe8, 0x6b, 0x4e, 0xd0, 0xfb, + 0x82, 0x68, 0x93, 0x05, 0xd1, 0x3e, 0x17, 0x44, 0xeb, 0xb6, 0x72, 0x6d, 0xab, 0x47, 0x34, 0xf3, + 0x8b, 0x53, 0x3c, 0xa5, 0xf5, 0x4e, 0x29, 0x5d, 0x85, 0xd6, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x83, 0x54, 0x65, 0x55, 0x62, 0x02, 0x00, 0x00, +} + +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 + { + size, err := m.Distribution.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size := m.SaleCommission.Size() + i -= size + if _, err := m.SaleCommission.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Distribution) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Distribution) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Distribution) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.CommunityPool.Size() + i -= size + if _, err := m.CommunityPool.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size := m.Staking.Size() + i -= size + if _, err := m.Staking.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + 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 + l = m.SaleCommission.Size() + n += 1 + l + sovParams(uint64(l)) + l = m.Distribution.Size() + n += 1 + l + sovParams(uint64(l)) + return n +} + +func (m *Distribution) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Staking.Size() + n += 1 + l + sovParams(uint64(l)) + l = m.CommunityPool.Size() + n += 1 + l + sovParams(uint64(l)) + 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 != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SaleCommission", 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 + } + if err := m.SaleCommission.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Distribution", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Distribution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipParams(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthParams + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Distribution) Unmarshal(dAtA []byte) 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: Distribution: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Distribution: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Staking", 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 + } + if err := m.Staking.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CommunityPool", 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 + } + if err := m.CommunityPool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipParams(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthParams + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func 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") +) From 822bcb57b4f68f736a085809d55a79954a8c4f0b Mon Sep 17 00:00:00 2001 From: harish Date: Sat, 12 Feb 2022 17:03:31 +0530 Subject: [PATCH 06/12] feat: sale split option for listing --- proto/marketplace/v1beta1/listing.proto | 12 +- proto/marketplace/v1beta1/tx.proto | 15 +- x/marketplace/types/listing.pb.go | 252 ++++++++++++++++++------ x/marketplace/types/tx.pb.go | 133 +++++++++---- 4 files changed, 306 insertions(+), 106 deletions(-) diff --git a/proto/marketplace/v1beta1/listing.proto b/proto/marketplace/v1beta1/listing.proto index ce996e6..0982ea6 100644 --- a/proto/marketplace/v1beta1/listing.proto +++ b/proto/marketplace/v1beta1/listing.proto @@ -17,12 +17,18 @@ message Listing { (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin" ]; string owner = 5 [(gogoproto.moretags) = "yaml:\"owner\""]; + repeated WeightedAddress split_shares = 6 [ + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"split_shares\"" + ]; } +message WeightedAddress { + option (gogoproto.equal) = true; -message Params { - string sale_commission = 1 [ - (gogoproto.moretags) = "yaml:\"sale_commission\"", + string address = 1 [(gogoproto.moretags) = "yaml:\"address\""]; + string weight = 2 [ + (gogoproto.moretags) = "yaml:\"weight\"", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false ]; diff --git a/proto/marketplace/v1beta1/tx.proto b/proto/marketplace/v1beta1/tx.proto index cb55fbb..a8c69e9 100644 --- a/proto/marketplace/v1beta1/tx.proto +++ b/proto/marketplace/v1beta1/tx.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package OmniFlix.marketplace.v1beta1; import "cosmos/base/v1beta1/coin.proto"; +import "marketplace/v1beta1/listing.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/OmniFlix/marketplace/x/marketplace/types"; @@ -20,14 +21,18 @@ service Msg { } message MsgListNFT { - string id = 1; - string nft_id = 2; - string denom_id = 3; - cosmos.base.v1beta1.Coin price = 4 [ + string id = 1; + string nft_id = 2; + string denom_id = 3; + cosmos.base.v1beta1.Coin price = 4 [ (gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin" ]; - string owner = 5; + string owner = 5; + repeated WeightedAddress split_shares = 6 [ + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"split_shares\"" + ]; } message MsgListNFTResponse {} diff --git a/x/marketplace/types/listing.pb.go b/x/marketplace/types/listing.pb.go index ec3b416..b0eaef2 100644 --- a/x/marketplace/types/listing.pb.go +++ b/x/marketplace/types/listing.pb.go @@ -26,11 +26,12 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type Listing struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - NftId string `protobuf:"bytes,2,opt,name=nft_id,json=nftId,proto3" json:"nft_id,omitempty" yaml:"nft_id"` - DenomId string `protobuf:"bytes,3,opt,name=denom_id,json=denomId,proto3" json:"denom_id,omitempty" yaml:"denom_id"` - Price types.Coin `protobuf:"bytes,4,opt,name=price,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coin" json:"price"` - Owner string `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty" yaml:"owner"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + NftId string `protobuf:"bytes,2,opt,name=nft_id,json=nftId,proto3" json:"nft_id,omitempty" yaml:"nft_id"` + DenomId string `protobuf:"bytes,3,opt,name=denom_id,json=denomId,proto3" json:"denom_id,omitempty" yaml:"denom_id"` + Price types.Coin `protobuf:"bytes,4,opt,name=price,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coin" json:"price"` + Owner string `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty" yaml:"owner"` + SplitShares []WeightedAddress `protobuf:"bytes,6,rep,name=split_shares,json=splitShares,proto3" json:"split_shares" yaml:"split_shares"` } func (m *Listing) Reset() { *m = Listing{} } @@ -66,22 +67,23 @@ func (m *Listing) XXX_DiscardUnknown() { var xxx_messageInfo_Listing proto.InternalMessageInfo -type Params struct { - SaleCommission github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=sale_commission,json=saleCommission,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"sale_commission" yaml:"sale_commission"` +type WeightedAddress struct { + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty" yaml:"address"` + Weight github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=weight,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"weight" yaml:"weight"` } -func (m *Params) Reset() { *m = Params{} } -func (m *Params) String() string { return proto.CompactTextString(m) } -func (*Params) ProtoMessage() {} -func (*Params) Descriptor() ([]byte, []int) { +func (m *WeightedAddress) Reset() { *m = WeightedAddress{} } +func (m *WeightedAddress) String() string { return proto.CompactTextString(m) } +func (*WeightedAddress) ProtoMessage() {} +func (*WeightedAddress) Descriptor() ([]byte, []int) { return fileDescriptor_d6e59dc66a1082ad, []int{1} } -func (m *Params) XXX_Unmarshal(b []byte) error { +func (m *WeightedAddress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *WeightedAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_Params.Marshal(b, m, deterministic) + return xxx_messageInfo_WeightedAddress.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -91,55 +93,86 @@ func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return b[:n], nil } } -func (m *Params) XXX_Merge(src proto.Message) { - xxx_messageInfo_Params.Merge(m, src) +func (m *WeightedAddress) XXX_Merge(src proto.Message) { + xxx_messageInfo_WeightedAddress.Merge(m, src) } -func (m *Params) XXX_Size() int { +func (m *WeightedAddress) XXX_Size() int { return m.Size() } -func (m *Params) XXX_DiscardUnknown() { - xxx_messageInfo_Params.DiscardUnknown(m) +func (m *WeightedAddress) XXX_DiscardUnknown() { + xxx_messageInfo_WeightedAddress.DiscardUnknown(m) } -var xxx_messageInfo_Params proto.InternalMessageInfo +var xxx_messageInfo_WeightedAddress proto.InternalMessageInfo func init() { proto.RegisterType((*Listing)(nil), "OmniFlix.marketplace.v1beta1.Listing") - proto.RegisterType((*Params)(nil), "OmniFlix.marketplace.v1beta1.Params") + proto.RegisterType((*WeightedAddress)(nil), "OmniFlix.marketplace.v1beta1.WeightedAddress") } func init() { proto.RegisterFile("marketplace/v1beta1/listing.proto", fileDescriptor_d6e59dc66a1082ad) } var fileDescriptor_d6e59dc66a1082ad = []byte{ - // 401 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcf, 0x8e, 0xd3, 0x30, - 0x10, 0xc6, 0x93, 0x42, 0xba, 0x60, 0x60, 0x17, 0x02, 0x42, 0x61, 0x85, 0x9c, 0x25, 0x87, 0xd2, - 0x0b, 0xb6, 0x4a, 0x6f, 0x1c, 0x53, 0x84, 0xa8, 0x84, 0x04, 0xe4, 0xc8, 0xa5, 0x38, 0x89, 0x1b, - 0xac, 0xc6, 0x76, 0x88, 0xcd, 0x9f, 0x8a, 0x97, 0xe0, 0x39, 0x78, 0x92, 0x1e, 0x7b, 0x44, 0x1c, - 0x02, 0xb4, 0x6f, 0x90, 0x3b, 0x12, 0x8a, 0xdd, 0x42, 0xe1, 0xb4, 0xa7, 0x4c, 0xbe, 0xf9, 0x66, - 0xe6, 0x37, 0x99, 0x80, 0x7b, 0x9c, 0xd4, 0x0b, 0xaa, 0xab, 0x92, 0x64, 0x14, 0xbf, 0x1f, 0xa5, - 0x54, 0x93, 0x11, 0x2e, 0x99, 0xd2, 0x4c, 0x14, 0xa8, 0xaa, 0xa5, 0x96, 0xfe, 0xdd, 0xe7, 0x5c, - 0xb0, 0x27, 0x25, 0xfb, 0x88, 0x0e, 0xbc, 0x68, 0xe7, 0x3d, 0x85, 0x99, 0x54, 0x5c, 0x2a, 0x9c, - 0x12, 0xf5, 0xb7, 0x41, 0x26, 0x99, 0xb0, 0xd5, 0xa7, 0xb7, 0x0a, 0x59, 0x48, 0x13, 0xe2, 0x2e, - 0xb2, 0x6a, 0xf4, 0xcb, 0x05, 0x47, 0xcf, 0xec, 0x14, 0xff, 0x18, 0xf4, 0x58, 0x1e, 0xb8, 0x67, - 0xee, 0xf0, 0x72, 0xd2, 0x63, 0xb9, 0x3f, 0x04, 0x7d, 0x31, 0xd7, 0x33, 0x96, 0x07, 0xbd, 0x4e, - 0x8b, 0x6f, 0xb4, 0x4d, 0x78, 0x6d, 0x49, 0x78, 0xf9, 0x28, 0xb2, 0x7a, 0x94, 0x78, 0x62, 0xae, - 0xa7, 0xb9, 0x8f, 0xc0, 0xa5, 0x9c, 0x0a, 0xc9, 0x3b, 0xef, 0x05, 0xe3, 0xbd, 0xd9, 0x36, 0xe1, - 0x89, 0xf5, 0xee, 0x33, 0x51, 0x72, 0x64, 0xc2, 0x69, 0xee, 0xbf, 0x06, 0x5e, 0x55, 0xb3, 0x8c, - 0x06, 0x17, 0xcf, 0xdc, 0xe1, 0x95, 0x87, 0x77, 0x90, 0x65, 0x47, 0x1d, 0xfb, 0x7e, 0x21, 0x34, - 0x91, 0x4c, 0xc4, 0x78, 0xd5, 0x84, 0xce, 0x97, 0xef, 0xe1, 0xfd, 0x82, 0xe9, 0x37, 0xef, 0x52, - 0x94, 0x49, 0x8e, 0x77, 0x8b, 0xda, 0xc7, 0x03, 0x95, 0x2f, 0xb0, 0x5e, 0x56, 0x54, 0x99, 0x82, - 0xc4, 0x36, 0xf6, 0x07, 0xc0, 0x93, 0x1f, 0x04, 0xad, 0x03, 0xcf, 0xe0, 0x5c, 0x6f, 0x9b, 0xf0, - 0xaa, 0xc5, 0x31, 0x72, 0x94, 0xd8, 0x74, 0xf4, 0x09, 0xf4, 0x5f, 0x90, 0x9a, 0x70, 0xe5, 0xbf, - 0x05, 0x27, 0x8a, 0x94, 0x74, 0x96, 0x49, 0xce, 0x99, 0x52, 0x4c, 0x0a, 0xfb, 0x29, 0xe2, 0xa7, - 0x1d, 0xc2, 0xb7, 0x26, 0x1c, 0x9c, 0x03, 0xe1, 0x31, 0xcd, 0xda, 0x26, 0xbc, 0x6d, 0x27, 0xfd, - 0xd7, 0x2e, 0x4a, 0x8e, 0x3b, 0x65, 0xf2, 0x47, 0x88, 0x5f, 0xae, 0x7e, 0x42, 0x67, 0xb5, 0x81, - 0xee, 0x7a, 0x03, 0xdd, 0x1f, 0x1b, 0xe8, 0x7e, 0xde, 0x42, 0x67, 0xbd, 0x85, 0xce, 0xd7, 0x2d, - 0x74, 0x5e, 0x8d, 0x0f, 0xe6, 0xed, 0x2f, 0x8f, 0x0f, 0xff, 0x92, 0x7f, 0xdf, 0x0c, 0x40, 0xda, - 0x37, 0x67, 0x1d, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x1c, 0xaf, 0xc6, 0x98, 0x4f, 0x02, 0x00, - 0x00, + // 466 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x3d, 0x6f, 0xd3, 0x40, + 0x18, 0xb6, 0xd3, 0x26, 0x81, 0x4b, 0x69, 0xe1, 0xca, 0x60, 0x0a, 0xf2, 0x05, 0x0f, 0x25, 0x03, + 0x3d, 0xab, 0xed, 0xd6, 0x05, 0x61, 0x10, 0x52, 0x25, 0x24, 0x84, 0x19, 0x2a, 0xb1, 0x14, 0xc7, + 0x77, 0x75, 0x4e, 0xb5, 0x7d, 0x96, 0xef, 0xa0, 0xf4, 0x5f, 0xf0, 0x0b, 0x10, 0x33, 0xbf, 0x24, + 0x63, 0x47, 0xc4, 0x60, 0x20, 0x59, 0x18, 0x98, 0xfc, 0x0b, 0x90, 0xef, 0x75, 0x94, 0xc0, 0x80, + 0x98, 0xee, 0xfd, 0x78, 0xde, 0xe7, 0x79, 0xee, 0xbd, 0x43, 0xf7, 0xb3, 0xa8, 0x3c, 0xe7, 0xba, + 0x48, 0xa3, 0x98, 0xfb, 0xef, 0xf6, 0xc7, 0x5c, 0x47, 0xfb, 0x7e, 0x2a, 0x94, 0x16, 0x79, 0x42, + 0x8b, 0x52, 0x6a, 0x89, 0xef, 0xbd, 0xc8, 0x72, 0xf1, 0x2c, 0x15, 0xef, 0xe9, 0x0a, 0x96, 0xb6, + 0xd8, 0x1d, 0x37, 0x96, 0x2a, 0x93, 0xca, 0x1f, 0x47, 0x6a, 0x49, 0x10, 0x4b, 0x91, 0xc3, 0xf4, + 0xce, 0xed, 0x44, 0x26, 0xd2, 0x84, 0x7e, 0x13, 0x41, 0xd5, 0xfb, 0xd5, 0x41, 0xfd, 0xe7, 0xa0, + 0x82, 0x37, 0x51, 0x47, 0x30, 0xc7, 0x1e, 0xda, 0xa3, 0xeb, 0x61, 0x47, 0x30, 0x3c, 0x42, 0xbd, + 0xfc, 0x4c, 0x9f, 0x0a, 0xe6, 0x74, 0x9a, 0x5a, 0x70, 0xab, 0xae, 0xc8, 0x8d, 0xcb, 0x28, 0x4b, + 0x8f, 0x3c, 0xa8, 0x7b, 0x61, 0x37, 0x3f, 0xd3, 0xc7, 0x0c, 0x53, 0x74, 0x8d, 0xf1, 0x5c, 0x66, + 0x0d, 0x76, 0xcd, 0x60, 0xb7, 0xeb, 0x8a, 0x6c, 0x01, 0x76, 0xd1, 0xf1, 0xc2, 0xbe, 0x09, 0x8f, + 0x19, 0x7e, 0x83, 0xba, 0x45, 0x29, 0x62, 0xee, 0xac, 0x0f, 0xed, 0xd1, 0xe0, 0xe0, 0x0e, 0x05, + 0xef, 0xb4, 0xf1, 0xbe, 0xb8, 0x10, 0x7d, 0x22, 0x45, 0x1e, 0xf8, 0xd3, 0x8a, 0x58, 0x9f, 0xbf, + 0x91, 0x07, 0x89, 0xd0, 0x93, 0xb7, 0x63, 0x1a, 0xcb, 0xcc, 0x6f, 0x2f, 0x0a, 0xc7, 0x9e, 0x62, + 0xe7, 0xbe, 0xbe, 0x2c, 0xb8, 0x32, 0x03, 0x21, 0x10, 0xe3, 0x5d, 0xd4, 0x95, 0x17, 0x39, 0x2f, + 0x9d, 0xae, 0xb1, 0x73, 0xb3, 0xae, 0xc8, 0x06, 0xd8, 0x31, 0x65, 0x2f, 0x84, 0x36, 0xce, 0xd0, + 0x86, 0x2a, 0x52, 0xa1, 0x4f, 0xd5, 0x24, 0x2a, 0xb9, 0x72, 0x7a, 0xc3, 0xb5, 0xd1, 0xe0, 0x60, + 0x8f, 0xfe, 0x6b, 0xd5, 0xf4, 0x84, 0x8b, 0x64, 0xa2, 0x39, 0x7b, 0xcc, 0x58, 0xc9, 0x95, 0x0a, + 0xee, 0x36, 0x26, 0xeb, 0x8a, 0x6c, 0x83, 0xc2, 0x2a, 0xa1, 0x17, 0x0e, 0x4c, 0xfa, 0x0a, 0xb2, + 0x8f, 0x36, 0xda, 0xfa, 0x6b, 0x1a, 0x3f, 0x44, 0xfd, 0x08, 0x42, 0xd8, 0x7d, 0x80, 0xeb, 0x8a, + 0x6c, 0x02, 0x55, 0xdb, 0xf0, 0xc2, 0x05, 0x04, 0x9f, 0xa0, 0xde, 0x85, 0x21, 0x68, 0x1f, 0xe5, + 0x51, 0xa3, 0xfd, 0xb5, 0x22, 0xbb, 0xff, 0xb1, 0xa0, 0xa7, 0x3c, 0x5e, 0x3e, 0x21, 0xb0, 0x78, + 0x61, 0x4b, 0x77, 0xb4, 0xfe, 0xf3, 0x13, 0xb1, 0x83, 0x97, 0xd3, 0x1f, 0xae, 0x35, 0x9d, 0xb9, + 0xf6, 0xd5, 0xcc, 0xb5, 0xbf, 0xcf, 0x5c, 0xfb, 0xc3, 0xdc, 0xb5, 0xae, 0xe6, 0xae, 0xf5, 0x65, + 0xee, 0x5a, 0xaf, 0x0f, 0x57, 0x44, 0x16, 0x1b, 0xf2, 0x57, 0x3f, 0xee, 0x9f, 0x99, 0x51, 0x1d, + 0xf7, 0xcc, 0x4f, 0x3b, 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x0f, 0x30, 0x32, 0xe2, 0x02, + 0x00, 0x00, } +func (this *WeightedAddress) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*WeightedAddress) + if !ok { + that2, ok := that.(WeightedAddress) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Address != that1.Address { + return false + } + if !this.Weight.Equal(that1.Weight) { + return false + } + return true +} func (m *Listing) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -160,6 +193,20 @@ func (m *Listing) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.SplitShares) > 0 { + for iNdEx := len(m.SplitShares) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SplitShares[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintListing(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } if len(m.Owner) > 0 { i -= len(m.Owner) copy(dAtA[i:], m.Owner) @@ -201,7 +248,7 @@ func (m *Listing) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Params) Marshal() (dAtA []byte, err error) { +func (m *WeightedAddress) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -211,26 +258,33 @@ func (m *Params) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Params) MarshalTo(dAtA []byte) (int, error) { +func (m *WeightedAddress) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *WeightedAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l { - size := m.SaleCommission.Size() + size := m.Weight.Size() i -= size - if _, err := m.SaleCommission.MarshalTo(dAtA[i:]); err != nil { + if _, err := m.Weight.MarshalTo(dAtA[i:]); err != nil { return 0, err } i = encodeVarintListing(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintListing(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } @@ -269,16 +323,26 @@ func (m *Listing) Size() (n int) { if l > 0 { n += 1 + l + sovListing(uint64(l)) } + if len(m.SplitShares) > 0 { + for _, e := range m.SplitShares { + l = e.Size() + n += 1 + l + sovListing(uint64(l)) + } + } return n } -func (m *Params) Size() (n int) { +func (m *WeightedAddress) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = m.SaleCommission.Size() + l = len(m.Address) + if l > 0 { + n += 1 + l + sovListing(uint64(l)) + } + l = m.Weight.Size() n += 1 + l + sovListing(uint64(l)) return n } @@ -479,6 +543,40 @@ func (m *Listing) Unmarshal(dAtA []byte) error { } m.Owner = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SplitShares", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowListing + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthListing + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthListing + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SplitShares = append(m.SplitShares, WeightedAddress{}) + if err := m.SplitShares[len(m.SplitShares)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipListing(dAtA[iNdEx:]) @@ -500,7 +598,7 @@ func (m *Listing) Unmarshal(dAtA []byte) error { } return nil } -func (m *Params) Unmarshal(dAtA []byte) error { +func (m *WeightedAddress) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -523,15 +621,47 @@ func (m *Params) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Params: wiretype end group for non-group") + return fmt.Errorf("proto: WeightedAddress: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: WeightedAddress: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SaleCommission", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowListing + } + 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 ErrInvalidLengthListing + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthListing + } + 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 Weight", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -559,7 +689,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.SaleCommission.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Weight.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/marketplace/types/tx.pb.go b/x/marketplace/types/tx.pb.go index b91730e..075ea08 100644 --- a/x/marketplace/types/tx.pb.go +++ b/x/marketplace/types/tx.pb.go @@ -30,11 +30,12 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type MsgListNFT struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - NftId string `protobuf:"bytes,2,opt,name=nft_id,json=nftId,proto3" json:"nft_id,omitempty"` - DenomId string `protobuf:"bytes,3,opt,name=denom_id,json=denomId,proto3" json:"denom_id,omitempty"` - Price types.Coin `protobuf:"bytes,4,opt,name=price,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coin" json:"price"` - Owner string `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + NftId string `protobuf:"bytes,2,opt,name=nft_id,json=nftId,proto3" json:"nft_id,omitempty"` + DenomId string `protobuf:"bytes,3,opt,name=denom_id,json=denomId,proto3" json:"denom_id,omitempty"` + Price types.Coin `protobuf:"bytes,4,opt,name=price,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coin" json:"price"` + Owner string `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"` + SplitShares []WeightedAddress `protobuf:"bytes,6,rep,name=split_shares,json=splitShares,proto3" json:"split_shares" yaml:"split_shares"` } func (m *MsgListNFT) Reset() { *m = MsgListNFT{} } @@ -344,38 +345,42 @@ func init() { func init() { proto.RegisterFile("marketplace/v1beta1/tx.proto", fileDescriptor_f73de1bb07ce97a8) } var fileDescriptor_f73de1bb07ce97a8 = []byte{ - // 488 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcd, 0x6e, 0x13, 0x31, - 0x10, 0xde, 0xdd, 0x90, 0x96, 0x4c, 0x51, 0x25, 0x4c, 0xa8, 0xb6, 0xab, 0x6a, 0x5b, 0xe5, 0xd2, - 0x08, 0x81, 0x4d, 0xd3, 0x3e, 0x41, 0x80, 0x4a, 0x95, 0x58, 0x10, 0x11, 0x27, 0x2e, 0x90, 0xdd, - 0x75, 0x8d, 0x95, 0xae, 0xbd, 0xc4, 0x0e, 0x34, 0x6f, 0x81, 0xc4, 0x85, 0x67, 0xe0, 0xc4, 0x53, - 0xa0, 0x1c, 0x7b, 0xe4, 0xc4, 0x4f, 0xf2, 0x22, 0x28, 0xde, 0xec, 0x4f, 0xc5, 0x4f, 0xc2, 0x01, - 0x4e, 0xf6, 0x78, 0xbe, 0xf9, 0xe6, 0xfb, 0x34, 0x23, 0xc3, 0x4e, 0xd2, 0x1f, 0x0e, 0xa8, 0x4e, - 0xcf, 0xfa, 0x11, 0x25, 0xaf, 0x0f, 0x42, 0xaa, 0xfb, 0x07, 0x44, 0x9f, 0xe3, 0x74, 0x28, 0xb5, - 0x44, 0x3b, 0x8f, 0x13, 0xc1, 0x8f, 0xcf, 0xf8, 0x39, 0xae, 0xc0, 0xf0, 0x02, 0xe6, 0xf9, 0x91, - 0x54, 0x89, 0x54, 0x24, 0xec, 0xab, 0xb2, 0x36, 0x92, 0x5c, 0x64, 0xd5, 0x5e, 0x93, 0x49, 0x26, - 0xcd, 0x95, 0xcc, 0x6f, 0xd9, 0x6b, 0xeb, 0x93, 0x0d, 0x10, 0x28, 0xf6, 0x90, 0x2b, 0xfd, 0xe8, - 0xf8, 0x29, 0xda, 0x04, 0x87, 0xc7, 0xae, 0xbd, 0x67, 0xb7, 0x1b, 0x3d, 0x87, 0xc7, 0xe8, 0x26, - 0xac, 0x89, 0x53, 0xfd, 0x9c, 0xc7, 0xae, 0x63, 0xde, 0xea, 0xe2, 0x54, 0x9f, 0xc4, 0x68, 0x1b, - 0xae, 0xc6, 0x54, 0xc8, 0x64, 0x9e, 0xa8, 0x99, 0xc4, 0xba, 0x89, 0x4f, 0x62, 0xf4, 0x02, 0xea, - 0xe9, 0x90, 0x47, 0xd4, 0xbd, 0xb2, 0x67, 0xb7, 0x37, 0x3a, 0xdb, 0x38, 0x93, 0x85, 0xe7, 0xb2, - 0x72, 0xad, 0xf8, 0x9e, 0xe4, 0xa2, 0x4b, 0x26, 0x5f, 0x76, 0xad, 0x0f, 0x5f, 0x77, 0xf7, 0x19, - 0xd7, 0x2f, 0x47, 0x21, 0x8e, 0x64, 0x42, 0x16, 0x1e, 0xb2, 0xe3, 0x8e, 0x8a, 0x07, 0x44, 0x8f, - 0x53, 0xaa, 0x4c, 0x41, 0x2f, 0x23, 0x46, 0x4d, 0xa8, 0xcb, 0x37, 0x82, 0x0e, 0xdd, 0x7a, 0x26, - 0xc9, 0x04, 0xad, 0x26, 0xa0, 0xd2, 0x47, 0x8f, 0xaa, 0x54, 0x0a, 0x45, 0x5b, 0xef, 0x6d, 0xd8, - 0x0c, 0x14, 0x7b, 0x10, 0x73, 0x3d, 0x4f, 0x71, 0xc1, 0x7e, 0xb2, 0x58, 0x08, 0x76, 0xfe, 0xb9, - 0xe0, 0x5a, 0x55, 0xb0, 0x0b, 0x5b, 0x97, 0x95, 0x15, 0xa2, 0x8f, 0xe0, 0x5a, 0xa0, 0xd8, 0x7d, - 0xfa, 0xbb, 0xa1, 0x14, 0x7c, 0x4e, 0x95, 0x6f, 0x0b, 0x9a, 0xd5, 0xaa, 0x82, 0xed, 0x9d, 0x0d, - 0x8d, 0x40, 0xb1, 0xee, 0x68, 0xfc, 0x2b, 0xae, 0xff, 0xe2, 0x3e, 0x1c, 0x8d, 0x4b, 0xf7, 0x26, - 0x68, 0xdd, 0x80, 0xeb, 0x85, 0xa8, 0x5c, 0x6a, 0xe7, 0x63, 0x0d, 0x6a, 0x81, 0x62, 0x88, 0xc2, - 0x7a, 0xee, 0xbd, 0x8d, 0xff, 0xb4, 0xf4, 0xb8, 0x1c, 0xb9, 0x77, 0x77, 0x55, 0x64, 0xde, 0x0e, - 0xbd, 0x82, 0x8d, 0xea, 0x62, 0xdc, 0x5e, 0x4a, 0x50, 0x41, 0x7b, 0x47, 0x7f, 0x83, 0x2e, 0x5a, - 0x0e, 0xa0, 0x51, 0xce, 0xf5, 0xd6, 0x52, 0x8a, 0x02, 0xeb, 0x75, 0x56, 0xc7, 0x16, 0xcd, 0x42, - 0x58, 0x5b, 0x4c, 0x7d, 0x7f, 0x69, 0x75, 0x06, 0xf4, 0xc8, 0x8a, 0xc0, 0xbc, 0x47, 0xf7, 0xc9, - 0xe4, 0xbb, 0x6f, 0x4d, 0xa6, 0xbe, 0x7d, 0x31, 0xf5, 0xed, 0x6f, 0x53, 0xdf, 0x7e, 0x3b, 0xf3, - 0xad, 0x8b, 0x99, 0x6f, 0x7d, 0x9e, 0xf9, 0xd6, 0xb3, 0xc3, 0xca, 0xae, 0xe4, 0xc4, 0xa4, 0xfa, - 0xc7, 0x5d, 0x8e, 0xcc, 0xf2, 0x84, 0x6b, 0xe6, 0x67, 0x3a, 0xfc, 0x11, 0x00, 0x00, 0xff, 0xff, - 0xab, 0x0a, 0x58, 0xa4, 0x0d, 0x05, 0x00, 0x00, + // 558 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xc1, 0x6e, 0xd3, 0x40, + 0x10, 0x8d, 0x1d, 0x92, 0x92, 0x49, 0x55, 0x09, 0x37, 0x54, 0xae, 0xa9, 0x9c, 0xe0, 0x4b, 0x23, + 0x44, 0x6d, 0x9a, 0xf6, 0xc4, 0x8d, 0x00, 0x95, 0x2a, 0x35, 0x20, 0x02, 0x12, 0x12, 0x97, 0x62, + 0x67, 0xb7, 0x9b, 0x55, 0x62, 0xaf, 0xf1, 0x6e, 0xa0, 0xf9, 0x0b, 0x24, 0x2e, 0x7c, 0x03, 0x27, + 0x2e, 0xfc, 0x43, 0x8e, 0x3d, 0x72, 0x2a, 0x90, 0xfc, 0x01, 0x5f, 0x80, 0xb2, 0x8e, 0x1d, 0x57, + 0x94, 0x26, 0x1c, 0xe0, 0x64, 0xcf, 0xee, 0x9b, 0x37, 0x6f, 0xde, 0x8c, 0x16, 0xb6, 0x7c, 0x37, + 0xea, 0x61, 0x11, 0xf6, 0xdd, 0x0e, 0x76, 0xde, 0xee, 0x7a, 0x58, 0xb8, 0xbb, 0x8e, 0x38, 0xb5, + 0xc3, 0x88, 0x09, 0xa6, 0x6d, 0x3d, 0xf5, 0x03, 0x7a, 0xd0, 0xa7, 0xa7, 0x76, 0x06, 0x66, 0xcf, + 0x60, 0x86, 0xd9, 0x61, 0xdc, 0x67, 0xdc, 0xf1, 0x5c, 0x3e, 0xcf, 0xed, 0x30, 0x1a, 0xc4, 0xd9, + 0xc6, 0xed, 0xcb, 0xb8, 0xfb, 0x94, 0x0b, 0x1a, 0x90, 0x19, 0xa4, 0x42, 0x18, 0x61, 0xf2, 0xd7, + 0x99, 0xfe, 0xc5, 0xa7, 0xd6, 0x17, 0x15, 0xa0, 0xc5, 0xc9, 0x11, 0xe5, 0xe2, 0xc9, 0xc1, 0x0b, + 0x6d, 0x0d, 0x54, 0x8a, 0x74, 0xa5, 0xa6, 0xd4, 0x4b, 0x6d, 0x95, 0x22, 0xed, 0x26, 0x14, 0x83, + 0x13, 0x71, 0x4c, 0x91, 0xae, 0xca, 0xb3, 0x42, 0x70, 0x22, 0x0e, 0x91, 0xb6, 0x09, 0xd7, 0x11, + 0x0e, 0x98, 0x3f, 0xbd, 0xc8, 0xcb, 0x8b, 0x15, 0x19, 0x1f, 0x22, 0xed, 0x35, 0x14, 0xc2, 0x88, + 0x76, 0xb0, 0x7e, 0xad, 0xa6, 0xd4, 0xcb, 0x8d, 0x4d, 0x3b, 0x56, 0x6e, 0x4f, 0x95, 0x27, 0xed, + 0xd8, 0x0f, 0x19, 0x0d, 0x9a, 0xce, 0xe8, 0xbc, 0x9a, 0xfb, 0xf4, 0xad, 0xba, 0x4d, 0xa8, 0xe8, + 0x0e, 0x3c, 0xbb, 0xc3, 0x7c, 0x67, 0xd6, 0x66, 0xfc, 0xd9, 0xe1, 0xa8, 0xe7, 0x88, 0x61, 0x88, + 0xb9, 0x4c, 0x68, 0xc7, 0xc4, 0x5a, 0x05, 0x0a, 0xec, 0x5d, 0x80, 0x23, 0xbd, 0x10, 0x4b, 0x92, + 0x81, 0xe6, 0xc3, 0x2a, 0x0f, 0xfb, 0x54, 0x1c, 0xf3, 0xae, 0x1b, 0x61, 0xae, 0x17, 0x6b, 0xf9, + 0x7a, 0xb9, 0xb1, 0x63, 0x5f, 0x65, 0xab, 0xfd, 0x12, 0x53, 0xd2, 0x15, 0x18, 0x3d, 0x40, 0x28, + 0xc2, 0x9c, 0x37, 0x6f, 0x4d, 0x25, 0xfd, 0x3c, 0xaf, 0xae, 0x0f, 0x5d, 0xbf, 0x7f, 0xdf, 0xca, + 0x12, 0x5a, 0xed, 0xb2, 0x0c, 0x9f, 0xc7, 0x51, 0x05, 0xb4, 0xb9, 0x6d, 0x6d, 0xcc, 0x43, 0x16, + 0x70, 0x6c, 0x7d, 0x54, 0x60, 0xad, 0xc5, 0xc9, 0x63, 0x44, 0xc5, 0x51, 0x6c, 0xfe, 0x6f, 0x8e, + 0xa6, 0xfe, 0xa8, 0xff, 0xdc, 0x9f, 0x7c, 0xc6, 0x1f, 0x4b, 0x87, 0x8d, 0x8b, 0xca, 0x52, 0xd1, + 0xfb, 0xb0, 0xda, 0xe2, 0xe4, 0x11, 0xfe, 0xd3, 0x0e, 0xa4, 0x7c, 0x6a, 0x96, 0x6f, 0x03, 0x2a, + 0xd9, 0xac, 0x94, 0xed, 0x83, 0x02, 0xa5, 0x16, 0x27, 0xcd, 0xc1, 0xf0, 0x32, 0xae, 0xff, 0xd2, + 0xbd, 0x37, 0x18, 0xce, 0xbb, 0x97, 0x81, 0xb5, 0x0e, 0x37, 0x52, 0x51, 0x89, 0xd4, 0xc6, 0xe7, + 0x3c, 0xe4, 0x5b, 0x9c, 0x68, 0x18, 0x56, 0x92, 0xde, 0xeb, 0x57, 0xef, 0xcb, 0x7c, 0xe4, 0xc6, + 0xbd, 0x65, 0x91, 0x49, 0x39, 0xed, 0x0d, 0x94, 0xb3, 0x8b, 0x71, 0x77, 0x21, 0x41, 0x06, 0x6d, + 0xec, 0xff, 0x0d, 0x3a, 0x2d, 0xd9, 0x83, 0xd2, 0x7c, 0xae, 0x77, 0x16, 0x52, 0xa4, 0x58, 0xa3, + 0xb1, 0x3c, 0x36, 0x2d, 0xe6, 0x41, 0x71, 0x36, 0xf5, 0xed, 0x85, 0xd9, 0x31, 0xd0, 0x70, 0x96, + 0x04, 0x26, 0x35, 0x9a, 0xcf, 0x46, 0x3f, 0xcc, 0xdc, 0x68, 0x6c, 0x2a, 0x67, 0x63, 0x53, 0xf9, + 0x3e, 0x36, 0x95, 0xf7, 0x13, 0x33, 0x77, 0x36, 0x31, 0x73, 0x5f, 0x27, 0x66, 0xee, 0xd5, 0x5e, + 0x66, 0x57, 0x12, 0x62, 0x27, 0xfb, 0x32, 0x5e, 0x8c, 0xe4, 0xf2, 0x78, 0x45, 0xf9, 0x10, 0xee, + 0xfd, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x40, 0xc2, 0x28, 0x6a, 0x9f, 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -586,6 +591,20 @@ func (m *MsgListNFT) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.SplitShares) > 0 { + for iNdEx := len(m.SplitShares) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SplitShares[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } if len(m.Owner) > 0 { i -= len(m.Owner) copy(dAtA[i:], m.Owner) @@ -885,6 +904,12 @@ func (m *MsgListNFT) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + if len(m.SplitShares) > 0 { + for _, e := range m.SplitShares { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } return n } @@ -1175,6 +1200,40 @@ func (m *MsgListNFT) Unmarshal(dAtA []byte) error { } m.Owner = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SplitShares", 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.SplitShares = append(m.SplitShares, WeightedAddress{}) + if err := m.SplitShares[len(m.SplitShares)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) From 0ca4bd895b93e03b898e023c07862a206ea2b182 Mon Sep 17 00:00:00 2001 From: harish Date: Sat, 12 Feb 2022 19:42:10 +0530 Subject: [PATCH 07/12] feat: sale price distribution according to configured splits --- x/marketplace/client/cli/flags.go | 12 ++++---- x/marketplace/client/cli/tx.go | 35 ++++++++++++++++++++++- x/marketplace/client/rest/rest.go | 12 ++++---- x/marketplace/client/rest/tx.go | 2 +- x/marketplace/exported/marketplace.go | 1 + x/marketplace/keeper/keeper.go | 41 ++++++++++++++++++--------- x/marketplace/keeper/msg_server.go | 2 +- x/marketplace/types/constants.go | 1 + x/marketplace/types/listing.go | 19 ++++++++----- x/marketplace/types/msgs.go | 14 +++++---- 10 files changed, 100 insertions(+), 39 deletions(-) diff --git a/x/marketplace/client/cli/flags.go b/x/marketplace/client/cli/flags.go index 5159822..29da78c 100644 --- a/x/marketplace/client/cli/flags.go +++ b/x/marketplace/client/cli/flags.go @@ -5,11 +5,12 @@ import ( ) const ( - FlagDenomId = "denom-id" - FlagNftId = "nft-id" - FlagPrice = "price" - FlagOwner = "owner" - FlagPriceDenom = "price-denom" + FlagDenomId = "denom-id" + FlagNftId = "nft-id" + FlagPrice = "price" + FlagOwner = "owner" + FlagPriceDenom = "price-denom" + FlagSplitShares = "split-shares" ) var ( @@ -22,6 +23,7 @@ func init() { FsListNft.String(FlagDenomId, "", "nft denom id") FsListNft.String(FlagNftId, "", "nft id") FsListNft.String(FlagPrice, "", "listing price of nft") + FsListNft.String(FlagSplitShares, "", "split shares for listing") FsEditListing.String(FlagPrice, "", "listing price of nft") diff --git a/x/marketplace/client/cli/tx.go b/x/marketplace/client/cli/tx.go index f955abf..1d5be13 100644 --- a/x/marketplace/client/cli/tx.go +++ b/x/marketplace/client/cli/tx.go @@ -70,8 +70,19 @@ func GetCmdListNft() *cobra.Command { if err != nil { return fmt.Errorf("failed to parse price: %s", price) } + splitSharesStr, err := cmd.Flags().GetString(FlagSplitShares) + if err != nil { + return err + } + var splitShares []types.WeightedAddress + if len(splitSharesStr) > 0 { + splitShares, err = parseSplitShares(splitSharesStr) + if err != nil { + return err + } + } - msg := types.NewMsgListNFT(denomId, nftId, price, owner) + msg := types.NewMsgListNFT(denomId, nftId, price, owner, splitShares) if err := msg.ValidateBasic(); err != nil { return err @@ -222,3 +233,25 @@ func GetCmdBuyNft() *cobra.Command { return cmd } + +func parseSplitShares(splitsharesStr string) ([]types.WeightedAddress, error) { + splitsharesStr = strings.TrimSpace(splitsharesStr) + splitsStrList := strings.Split(splitsharesStr, ",") + var weightedAddrsList []types.WeightedAddress + for _, splitStr := range splitsStrList { + var share types.WeightedAddress + split := strings.Split(strings.TrimSpace(splitStr), ":") + address, err := sdk.AccAddressFromBech32(strings.TrimSpace(split[0])) + if err != nil { + return nil, err + } + weight, err := sdk.NewDecFromStr(strings.TrimSpace(split[1])) + if err != nil { + return nil, err + } + share.Address = address.String() + share.Weight = weight + weightedAddrsList = append(weightedAddrsList, share) + } + return weightedAddrsList, nil +} diff --git a/x/marketplace/client/rest/rest.go b/x/marketplace/client/rest/rest.go index 2132253..0be1ee9 100644 --- a/x/marketplace/client/rest/rest.go +++ b/x/marketplace/client/rest/rest.go @@ -1,6 +1,7 @@ package rest import ( + "github.com/OmniFlix/marketplace/x/marketplace/types" "github.com/gorilla/mux" "github.com/cosmos/cosmos-sdk/client" @@ -22,11 +23,12 @@ func RegisterHandlers(cliCtx client.Context, r *mux.Router) { } type listNftReq struct { - BaseReq rest.BaseReq `json:"base_req"` - DenomId string `json:"denom_id"` - NftId string `json:"nft_id"` - Price string `json:"price"` - Owner string `json:"owner"` + BaseReq rest.BaseReq `json:"base_req"` + DenomId string `json:"denom_id"` + NftId string `json:"nft_id"` + Price string `json:"price"` + Owner string `json:"owner"` + SplitShares []types.WeightedAddress `json:"split_shares"` } type editListingReq struct { BaseReq rest.BaseReq `json:"base_req"` diff --git a/x/marketplace/client/rest/tx.go b/x/marketplace/client/rest/tx.go index 070dc1f..f8be6ee 100644 --- a/x/marketplace/client/rest/tx.go +++ b/x/marketplace/client/rest/tx.go @@ -61,7 +61,7 @@ func ListNft(cliCtx client.Context) http.HandlerFunc { return } - msg := types.NewMsgListNFT(req.DenomId, req.NftId, price, owner) + msg := types.NewMsgListNFT(req.DenomId, req.NftId, price, owner, req.SplitShares) if err := msg.ValidateBasic(); err != nil { rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) diff --git a/x/marketplace/exported/marketplace.go b/x/marketplace/exported/marketplace.go index e23091e..6dfd25a 100644 --- a/x/marketplace/exported/marketplace.go +++ b/x/marketplace/exported/marketplace.go @@ -8,4 +8,5 @@ type ListingI interface { GetNftId() string GetPrice() sdk.Coin GetOwner() sdk.AccAddress + GetSplitShares() interface{} } diff --git a/x/marketplace/keeper/keeper.go b/x/marketplace/keeper/keeper.go index 0e9950d..3763965 100644 --- a/x/marketplace/keeper/keeper.go +++ b/x/marketplace/keeper/keeper.go @@ -115,13 +115,7 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress } saleCommission := k.GetSaleCommission(ctx) marketplaceCoin := k.GetProportions(ctx, listing.Price, saleCommission) - ownerCoin := listing.Price.Sub(marketplaceCoin) - - err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sdk.NewCoins(ownerCoin)) - if err != nil { - return err - } - + listingSaleCoin := listing.Price.Sub(marketplaceCoin) err = k.distributionKeeper.FundCommunityPool( ctx, sdk.NewCoins(marketplaceCoin), @@ -131,11 +125,32 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress return err } - /* - err = k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.ModuleName, authtypes.FeeCollectorName, sdk.NewCoins(marketplaceCoin)) - if err != nil { - return err - } */ + if len(listing.SplitShares) > 0 { + for _, share := range listing.SplitShares { + sharePortionCoins := sdk.NewCoins(k.GetProportions(ctx, listingSaleCoin, share.Weight)) + if share.Address == "" { + err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sharePortionCoins) + if err != nil { + return err + } + } else { + saleSplitAddr, err := sdk.AccAddressFromBech32(share.Address) + if err != nil { + return err + } + err = k.bankKeeper.SendCoinsFromModuleToAccount( + ctx, types.ModuleName, saleSplitAddr, sharePortionCoins) + if err != nil { + return err + } + } + } + } else { + err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sdk.NewCoins(listingSaleCoin)) + if err != nil { + return err + } + } k.DeleteListing(ctx, listing) return nil @@ -143,4 +158,4 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress func (k Keeper) GetProportions(ctx sdk.Context, totalCoin sdk.Coin, ratio sdk.Dec) sdk.Coin { return sdk.NewCoin(totalCoin.Denom, totalCoin.Amount.ToDec().Mul(ratio).TruncateInt()) -} \ No newline at end of file +} diff --git a/x/marketplace/keeper/msg_server.go b/x/marketplace/keeper/msg_server.go index 7fb78e9..959c90f 100644 --- a/x/marketplace/keeper/msg_server.go +++ b/x/marketplace/keeper/msg_server.go @@ -39,7 +39,7 @@ func (m msgServer) ListNFT(goCtx context.Context, msg *types.MsgListNFT) (*types types.ErrNftNonTransferable, "non-transferable nfts not allowed to list in marketplace") } - listing := types.NewListing(msg.Id, msg.NftId, msg.DenomId, msg.Price, owner) + listing := types.NewListing(msg.Id, msg.NftId, msg.DenomId, msg.Price, owner, msg.SplitShares) err = m.Keeper.AddListing(ctx, listing) if err != nil { return nil, err diff --git a/x/marketplace/types/constants.go b/x/marketplace/types/constants.go index fbf2323..21fa44c 100644 --- a/x/marketplace/types/constants.go +++ b/x/marketplace/types/constants.go @@ -3,4 +3,5 @@ package types const ( MinListingIdLength = 4 MaxListingIdLength = 64 + MaxSplits = 5 ) diff --git a/x/marketplace/types/listing.go b/x/marketplace/types/listing.go index a184d52..8a2855c 100644 --- a/x/marketplace/types/listing.go +++ b/x/marketplace/types/listing.go @@ -11,13 +11,14 @@ var ( _ exported.ListingI = &Listing{} ) -func NewListing(id, nftId, denomId string, price sdk.Coin, owner sdk.AccAddress) Listing { +func NewListing(id, nftId, denomId string, price sdk.Coin, owner sdk.AccAddress, splitShares []WeightedAddress) Listing { return Listing{ - Id: id, - NftId: nftId, - DenomId: denomId, - Price: price, - Owner: owner.String(), + Id: id, + NftId: nftId, + DenomId: denomId, + Price: price, + Owner: owner.String(), + SplitShares: splitShares, } } @@ -40,4 +41,8 @@ func (l Listing) GetPrice() sdk.Coin { func (l Listing) GetOwner() sdk.AccAddress { owner, _ := sdk.AccAddressFromBech32(l.Owner) return owner -} \ No newline at end of file +} + +func (l Listing) GetSplitShares() interface{} { + return l.SplitShares +} diff --git a/x/marketplace/types/msgs.go b/x/marketplace/types/msgs.go index 56e4260..cc94271 100644 --- a/x/marketplace/types/msgs.go +++ b/x/marketplace/types/msgs.go @@ -25,13 +25,14 @@ var ( _ sdk.Msg = &MsgBuyNFT{} ) -func NewMsgListNFT(denomId, nftId string, price sdk.Coin, owner sdk.AccAddress) *MsgListNFT { +func NewMsgListNFT(denomId, nftId string, price sdk.Coin, owner sdk.AccAddress, splitShares []WeightedAddress) *MsgListNFT { return &MsgListNFT{ - Id: GenUniqueID(IdPrefix), - NftId: nftId, - DenomId: denomId, - Price: price, - Owner: owner.String(), + Id: GenUniqueID(IdPrefix), + NftId: nftId, + DenomId: denomId, + Price: price, + Owner: owner.String(), + SplitShares: splitShares, } } @@ -47,6 +48,7 @@ func (msg MsgListNFT) ValidateBasic() error { msg.DenomId, msg.Price, sdk.AccAddress(msg.Owner), + msg.SplitShares, ), ) } From bac50ba5aa5d25b06f676bc05759e634c599d4da Mon Sep 17 00:00:00 2001 From: harish Date: Sat, 12 Feb 2022 20:31:40 +0530 Subject: [PATCH 08/12] validation: added validation for split shares --- x/marketplace/types/errors.go | 1 + x/marketplace/types/validation.go | 34 +++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/x/marketplace/types/errors.go b/x/marketplace/types/errors.go index 3c28847..8cd998d 100644 --- a/x/marketplace/types/errors.go +++ b/x/marketplace/types/errors.go @@ -19,4 +19,5 @@ var ( ErrUnauthorized = sdkerrors.Register(ModuleName, 12, "unauthorized") ErrNftNonTransferable = sdkerrors.Register(ModuleName, 13, "non-transferable nft") ErrListingDoesNotExists = sdkerrors.Register(ModuleName, 14, "listing doesn't exists") + ErrInvalidSplits = sdkerrors.Register(ModuleName, 15, "invalid split shares") ) diff --git a/x/marketplace/types/validation.go b/x/marketplace/types/validation.go index 205e8b7..1a75502 100644 --- a/x/marketplace/types/validation.go +++ b/x/marketplace/types/validation.go @@ -9,6 +9,7 @@ import ( var ( allowedDenoms = []string{} ) + // ValidateListing checks listing is valid or not func ValidateListing(listing Listing) error { if len(listing.Owner) > 0 { @@ -22,6 +23,9 @@ func ValidateListing(listing Listing) error { if err := ValidatePrice(listing.Price); err != nil { return err } + if err := ValidateSplitShares(listing.SplitShares); err != nil { + return err + } return nil } @@ -30,11 +34,11 @@ func ValidatePrice(price sdk.Coin) error { if price.IsZero() { return sdkerrors.Wrapf(ErrInvalidPrice, "invalid price %d, only accepts positive amount", price) } - /* - if !StringInSlice(price.Denom, allowedDenoms) { - return sdkerrors.Wrapf(ErrInvalidPriceDenom, "invalid denom %s", price.Denom) - } - */ + /* + if !StringInSlice(price.Denom, allowedDenoms) { + return sdkerrors.Wrapf(ErrInvalidPriceDenom, "invalid denom %s", price.Denom) + } + */ return nil } @@ -45,10 +49,28 @@ func ValidateId(id string) error { return sdkerrors.Wrapf( ErrInvalidListingId, "invalid id %s, only accepts value [%d, %d]", id, MinListingIdLength, MaxListingIdLength, - ) + ) } if !IsBeginWithAlpha(id) || !IsAlphaNumeric(id) { return sdkerrors.Wrapf(ErrInvalidListingId, "invalid id %s, only accepts alphanumeric characters,and begin with an english letter", id) } return nil } + +func ValidateSplitShares(splitShares []WeightedAddress) error { + if len(splitShares) > MaxSplits { + return sdkerrors.Wrapf(ErrInvalidSplits, "number of splits are more than the limit, len must be less than or equal to %d ", MaxSplits) + } + totalWeight := sdk.NewDec(0) + for _, share := range splitShares { + _, err := sdk.AccAddressFromBech32(share.Address) + if err != nil { + return err + } + totalWeight = totalWeight.Add(share.Weight) + } + if !totalWeight.Equal(sdk.NewDec(1)) { + return sdkerrors.Wrapf(ErrInvalidSplits, "invalid weights, total sum of weights must be equal to %d", 1) + } + return nil +} From ae2746dc338ea35c149f81f8f281c210b2aa7bb6 Mon Sep 17 00:00:00 2001 From: harish Date: Sat, 12 Feb 2022 21:31:00 +0530 Subject: [PATCH 09/12] feat: marketplace distribtuion params at genesis --- x/marketplace/genesis.go | 4 +++ x/marketplace/types/params.go | 64 +++++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/x/marketplace/genesis.go b/x/marketplace/genesis.go index c54ce52..9d13052 100644 --- a/x/marketplace/genesis.go +++ b/x/marketplace/genesis.go @@ -36,5 +36,9 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { func DefaultGenesisState() *types.GenesisState { return types.NewGenesisState([]types.Listing{}, 0, types.Params{ SaleCommission: sdk.NewDecWithPrec(1, 2), // "0.01" or 1% + Distribution: types.Distribution{ + Staking: sdk.NewDecWithPrec(50, 2), // "0.50" or 50% + CommunityPool: sdk.NewDecWithPrec(50, 2), // "0.50" or 50% + }, }) } diff --git a/x/marketplace/types/params.go b/x/marketplace/types/params.go index 035cb76..7ab7098 100644 --- a/x/marketplace/types/params.go +++ b/x/marketplace/types/params.go @@ -9,7 +9,8 @@ import ( // Parameter keys var ( - ParamStoreKeySaleCommission = []byte("salecommission") + ParamStoreKeySaleCommission = []byte("SaleCommission") + ParamStoreKeyDistribution = []byte("MarketplaceDistribution") ) var _ paramtypes.ParamSet = (*Params)(nil) @@ -22,7 +23,7 @@ func ParamKeyTable() paramtypes.KeyTable { // DefaultParams returns default marketplace parameters func DefaultParams() Params { return Params{ - SaleCommission: sdk.NewDecWithPrec(1, 2), // 2% + SaleCommission: sdk.NewDecWithPrec(1, 2), // 2% } } @@ -30,6 +31,7 @@ func DefaultParams() Params { func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { return paramtypes.ParamSetPairs{ paramtypes.NewParamSetPair(ParamStoreKeySaleCommission, &p.SaleCommission, validateSaleCommission), + paramtypes.NewParamSetPair(ParamStoreKeyDistribution, &p.Distribution, validateMarketplaceDistributionParams), } } @@ -60,4 +62,60 @@ func validateSaleCommission(i interface{}) error { } return nil -} \ No newline at end of file +} +func validateStakingDistribution(i interface{}) error { + v, ok := i.(sdk.Dec) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if v.IsNil() { + return fmt.Errorf("staking distribution value must be not nil") + } + if v.IsNegative() { + return fmt.Errorf("staking distribution value must be positive: %s", v) + } + if v.GT(sdk.OneDec()) { + return fmt.Errorf("staking distribution value too large: %s", v) + } + + return nil +} + +func validateCommunityPoolDistribution(i interface{}) error { + v, ok := i.(sdk.Dec) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if v.IsNil() { + return fmt.Errorf("community pool distribution value must be not nil") + } + if v.IsNegative() { + return fmt.Errorf("community pool distribution value must be positive: %s", v) + } + if v.GT(sdk.OneDec()) { + return fmt.Errorf("community pool distribution value too large: %s", v) + } + + return nil +} + +func validateMarketplaceDistributionParams(i interface{}) error { + v, ok := i.(Distribution) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + err := validateStakingDistribution(v.Staking) + if err != nil { + return err + } + err = validateCommunityPoolDistribution(v.CommunityPool) + if err != nil { + return err + } + if !v.Staking.Add(v.CommunityPool).Equal(sdk.OneDec()) { + return fmt.Errorf("marketplace distribtution commission params sum must be equal to : %d", 1) + } + return nil +} From bb29dadded59c213e51340064c61663b3b2488e3 Mon Sep 17 00:00:00 2001 From: harish Date: Sat, 12 Feb 2022 23:25:19 +0530 Subject: [PATCH 10/12] update: sale commission distribution to staking and community pool according genesis params --- x/marketplace/keeper/keeper.go | 35 +++++++++++++++++++++++++++------- x/marketplace/keeper/params.go | 6 ++++++ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/x/marketplace/keeper/keeper.go b/x/marketplace/keeper/keeper.go index 3763965..86f05f2 100644 --- a/x/marketplace/keeper/keeper.go +++ b/x/marketplace/keeper/keeper.go @@ -3,6 +3,7 @@ package keeper import ( "fmt" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/tendermint/tendermint/libs/log" "github.com/cosmos/cosmos-sdk/codec" @@ -102,8 +103,9 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress if err != nil { return err } + listingPriceCoin := listing.Price - err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, buyer, types.ModuleName, sdk.NewCoins(listing.Price)) + err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, buyer, types.ModuleName, sdk.NewCoins(listingPriceCoin)) if err != nil { return err } @@ -115,15 +117,11 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress } saleCommission := k.GetSaleCommission(ctx) marketplaceCoin := k.GetProportions(ctx, listing.Price, saleCommission) - listingSaleCoin := listing.Price.Sub(marketplaceCoin) - err = k.distributionKeeper.FundCommunityPool( - ctx, - sdk.NewCoins(marketplaceCoin), - k.accountKeeper.GetModuleAddress(types.ModuleName), - ) + err = k.DistributeCommission(ctx, marketplaceCoin) if err != nil { return err } + listingSaleCoin := listingPriceCoin.Sub(marketplaceCoin) if len(listing.SplitShares) > 0 { for _, share := range listing.SplitShares { @@ -159,3 +157,26 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress func (k Keeper) GetProportions(ctx sdk.Context, totalCoin sdk.Coin, ratio sdk.Dec) sdk.Coin { return sdk.NewCoin(totalCoin.Denom, totalCoin.Amount.ToDec().Mul(ratio).TruncateInt()) } + +func (k Keeper) DistributeCommission(ctx sdk.Context, marketplaceCoin sdk.Coin) error { + distrParams := k.GetMarketplaceDistributionParams(ctx) + if distrParams.Staking.GT(sdk.ZeroDec()) { + stakingCommissionCoins := sdk.NewCoins(k.GetProportions(ctx, marketplaceCoin, distrParams.Staking)) + err := k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.ModuleName, authtypes.FeeCollectorName, stakingCommissionCoins) + if err != nil { + return err + } + } + if distrParams.CommunityPool.GT(sdk.ZeroDec()) { + communityPoolCommissionCoins := sdk.NewCoins(k.GetProportions(ctx, marketplaceCoin, distrParams.CommunityPool)) + err := k.distributionKeeper.FundCommunityPool( + ctx, + communityPoolCommissionCoins, + k.accountKeeper.GetModuleAddress(types.ModuleName), + ) + if err != nil { + return err + } + } + return nil +} diff --git a/x/marketplace/keeper/params.go b/x/marketplace/keeper/params.go index deac423..745eb11 100644 --- a/x/marketplace/keeper/params.go +++ b/x/marketplace/keeper/params.go @@ -21,3 +21,9 @@ func (k Keeper) GetSaleCommission(ctx sdk.Context) (percent sdk.Dec) { k.paramSpace.Get(ctx, types.ParamStoreKeySaleCommission, &percent) return percent } + +// GetMarketplaceDistributionParams returns the current distribution of marketplace commission. +func (k Keeper) GetMarketplaceDistributionParams(ctx sdk.Context) (distParams types.Distribution) { + k.paramSpace.Get(ctx, types.ParamStoreKeyDistribution, &distParams) + return distParams +} From 3ea1f1b28207d879c0f2a093cd2e72b4b9b3caa5 Mon Sep 17 00:00:00 2001 From: harish Date: Mon, 14 Feb 2022 16:48:51 +0530 Subject: [PATCH 11/12] update: updated onft module version to onft@v0.3.0.alpha.1 --- app/app.go | 5 +- go.mod | 18 ++--- go.sum | 220 +++++++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 196 insertions(+), 47 deletions(-) diff --git a/app/app.go b/app/app.go index 4c80ef3..4990e83 100644 --- a/app/app.go +++ b/app/app.go @@ -351,7 +351,7 @@ func New( &stakingKeeper, govRouter, ) app.ONFTKeeper = onftkeeper.NewKeeper(appCodec, keys[onfttypes.StoreKey]) - onftModule := onft.NewAppModule(appCodec, app.ONFTKeeper) + onftModule := onft.NewAppModule(appCodec, app.ONFTKeeper, app.AccountKeeper, app.BankKeeper) app.MarketplaceKeeper = marketplacemodulekeeper.NewKeeper( appCodec, keys[marketplacemoduletypes.StoreKey], @@ -425,8 +425,7 @@ func New( feegrant.ModuleName, marketplacemoduletypes.ModuleName, onfttypes.ModuleName, ibctransfertypes.ModuleName, authtypes.ModuleName, vestingtypes.ModuleName, genutiltypes.ModuleName, paramstypes.ModuleName, banktypes.ModuleName, - ) - + ) // NOTE: The genutils module must occur after staking so that pools are // properly initialized with tokens from genesis accounts. diff --git a/go.mod b/go.mod index 9c23bc1..6cff829 100644 --- a/go.mod +++ b/go.mod @@ -3,28 +3,22 @@ module github.com/OmniFlix/marketplace go 1.16 require ( - github.com/OmniFlix/onft v0.2.0 - github.com/cosmos/cosmos-sdk v0.45.0 + github.com/OmniFlix/onft v0.3.0-alpha.1 + github.com/cosmos/cosmos-sdk v0.45.1 github.com/cosmos/ibc-go v1.2.2 - github.com/fsnotify/fsnotify v1.5.1 // indirect github.com/gogo/protobuf v1.3.3 github.com/golang/protobuf v1.5.2 - github.com/golang/snappy v0.0.3 // indirect - github.com/google/go-cmp v0.5.6 // indirect github.com/google/uuid v1.2.0 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/mitchellh/mapstructure v1.4.2 // indirect - github.com/pelletier/go-toml v1.9.4 // indirect github.com/spf13/cast v1.4.1 github.com/spf13/cobra v1.2.1 github.com/spf13/pflag v1.0.5 - github.com/tendermint/spm v0.1.8 - github.com/tendermint/tendermint v0.34.14 - github.com/tendermint/tm-db v0.6.4 - google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83 + github.com/tendermint/spm v0.1.9 + github.com/tendermint/tendermint v0.34.15 + github.com/tendermint/tm-db v0.6.6 + google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4 google.golang.org/grpc v1.42.0 - gopkg.in/ini.v1 v1.63.2 // indirect ) replace ( diff --git a/go.sum b/go.sum index a71aa65..57cafdf 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,6 @@ 4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M= 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= @@ -21,6 +22,11 @@ cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmW cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go/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= @@ -30,6 +36,7 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7 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/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= 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= @@ -74,6 +81,8 @@ github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= +github.com/HdrHistogram/hdrhistogram-go v1.1.0/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= +github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= @@ -85,8 +94,8 @@ github.com/Microsoft/go-winio v0.5.0 h1:Elr9Wn+sGKPlkaBvwu4mTrxtmOp3F3yV9qhaHbXG github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= -github.com/OmniFlix/onft v0.2.0 h1:ekAXyQWPgo3v8Z4fm0CzusFB0YKSZp+5Jj+eQdUKRl4= -github.com/OmniFlix/onft v0.2.0/go.mod h1:/FZAAdamM1Q5/PbVLOJ6RdgdpvITikcy+2a1rBW7rJo= +github.com/OmniFlix/onft v0.3.0-alpha.1 h1:r52CUJOohS7FMhGwF8eZXd9evm2O8+1DIoobmbhq6gg= +github.com/OmniFlix/onft v0.3.0-alpha.1/go.mod h1:y1RknOuWIm2FhShS8Cb03mgyryYu7xZa+PzG5lN3O3A= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= @@ -97,13 +106,16 @@ github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9 github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8= 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/Workiva/go-datastructures v1.0.52 h1:PLSK6pwn8mYdaoaCZEMsXBpBotr4HHn9abU0yMQt0NI= github.com/Workiva/go-datastructures v1.0.52/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA= +github.com/Workiva/go-datastructures v1.0.53 h1:J6Y/52yX10Xc5JjXmGtWoSSxs3mZnGSaq37xZZh7Yig= +github.com/Workiva/go-datastructures v1.0.53/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= github.com/Zilliqa/gozilliqa-sdk v1.2.1-0.20201201074141-dd0ecada1be6/go.mod h1:eSYp2T6f0apnuW8TzhV3f6Aff2SE8Dwio++U4ha4yEM= -github.com/adlio/schema v1.1.13 h1:LeNMVg5Z1FX+Qgz8tJUijBLRdcpbFUElz+d1489On98= github.com/adlio/schema v1.1.13/go.mod h1:L5Z7tw+7lRK1Fnpi/LT/ooCP1elkXn0krMWBQHUhEDE= +github.com/adlio/schema v1.1.14 h1:lIjyp5/2wSuEOmeQGNPpaRsVGZRqz9A/B+PaMtEotaU= +github.com/adlio/schema v1.1.14/go.mod h1:hQveFEMiDlG/M9yz9RAajnH5DzT6nAfqOG9YkEQU2pg= 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/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= 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= @@ -124,6 +136,7 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-metrics v0.3.9 h1:O2sNqxBdvq8Eq5xmzljcYzAORli6RWCvEym4cJf9m18= github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/ashanbrown/forbidigo v1.2.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= github.com/ashanbrown/makezero v0.0.0-20210520155254-b6261585ddde/go.mod h1:oG9Dnez7/ESBqc4EdrdNlryeo7d0KcW1ftXHm7nU/UU= @@ -133,7 +146,12 @@ github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go v1.40.45/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o= +github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= +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= @@ -167,14 +185,17 @@ github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= +github.com/casbin/casbin/v2 v2.37.0/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= 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/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/cp v0.1.0/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 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.8/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af/go.mod h1:Qjyv4H3//PWVzTeCezG2b9IRn6myJxJSr4TD/xo6ojU= github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= @@ -184,6 +205,7 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= 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/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod h1:1MxXX1Ux4x6mqPmjkUgTP1CdXIBXKX7T+Jk9Gxrmx+U= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= @@ -198,8 +220,9 @@ github.com/confio/ics23/go v0.6.6 h1:pkOy18YxxJ/r0XFDCnrl4Bjv6h4LkBSpLS6F38mrKL8 github.com/confio/ics23/go v0.6.6/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg= github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= github.com/containerd/continuity v0.0.0-20190827140505-75bee3e2ccb6/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= -github.com/containerd/continuity v0.1.0 h1:UFRRY5JemiAhPZrr/uE0n8fMTLcZsUvySPr1+D7pgr8= github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= +github.com/containerd/continuity v0.2.0 h1:j/9Wnn+hrEWjLvHuIxUU1YI5JjEjVlT2AA68cse9rwY= +github.com/containerd/continuity v0.2.0/go.mod h1:wCYX+dRqZdImhGucXOqTQn05AhX6EUDaGEMUzTFFpLg= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -216,8 +239,9 @@ github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44= github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU= github.com/cosmos/cosmos-sdk v0.44.2/go.mod h1:fwQJdw+aECatpTvQTo1tSfHEsxACdZYU80QCZUPnHr4= github.com/cosmos/cosmos-sdk v0.44.3/go.mod h1:bA3+VenaR/l/vDiYzaiwbWvRPWHMBX2jG0ygiFtiBp0= -github.com/cosmos/cosmos-sdk v0.45.0 h1:DHD+CIRZ+cYgiLXuTEUL/aprnfPsWSwaww/fIZEsZlk= -github.com/cosmos/cosmos-sdk v0.45.0/go.mod h1:XXS/asyCqWNWkx2rW6pSuen+EVcpAFxq6khrhnZgHaQ= +github.com/cosmos/cosmos-sdk v0.44.5/go.mod h1:maUA6m2TBxOJZkbwl0eRtEBgTX37kcaiOWU5t1HEGaY= +github.com/cosmos/cosmos-sdk v0.45.1 h1:PY79YxPea5qlRLExRnzg8/rT1Scc8GGgRs22p7DX99Q= +github.com/cosmos/cosmos-sdk v0.45.1/go.mod h1:XXS/asyCqWNWkx2rW6pSuen+EVcpAFxq6khrhnZgHaQ= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -229,6 +253,7 @@ github.com/cosmos/iavl v0.17.3 h1:s2N819a2olOmiauVa0WAhoIJq9EhSXE9HDBAoR9k+8Y= github.com/cosmos/iavl v0.17.3/go.mod h1:prJoErZFABYZGDHka1R6Oay4z9PrNeFFiMKHDAMOi4w= github.com/cosmos/ibc-go v1.2.2 h1:bs6TZ8Es1kycIu2AHlRZ9dzJ+mveqlLN/0sjWtRH88o= github.com/cosmos/ibc-go v1.2.2/go.mod h1:XmYjsRFOs6Q9Cz+CSsX21icNoH27vQKb3squgnCOCbs= +github.com/cosmos/ibc-go/v2 v2.0.3/go.mod h1:XUmW7wmubCRhIEAGtMGS+5IjiSSmcAwihoN/yPGd6Kk= github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4= github.com/cosmos/ledger-cosmos-go v0.11.1/go.mod h1:J8//BsAGTo3OC/vDLjMRFLW6q0WAaXvHnVc7ZmE8iUY= github.com/cosmos/ledger-go v0.9.2 h1:Nnao/dLwaVTk1Q5U9THldpUMMXU94BOTWPddSmVB6pI= @@ -303,9 +328,11 @@ github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4 github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= 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/goblin v0.0.0-20210519012713-85d372ac71e2/go.mod h1:VzmDKDJVZI3aJmnRI9VjAn9nJ8qPPsN1fqzr9dqInIo= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -318,6 +345,7 @@ github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x 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.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= @@ -327,18 +355,24 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 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 h1:dXFJfIHVvUcpSgDOV+Ne6t7jXri8Tfv2uOLHUZ2XNuo= 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.0 h1:7i2K3eKTos3Vc0enKCfnVcgHh2olr/MyfboYq7cAcFw= +github.com/go-kit/log v0.2.0/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 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-ole/go-ole v1.2.5/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.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= @@ -348,7 +382,6 @@ github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8w github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= @@ -362,6 +395,7 @@ github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslW github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= @@ -375,12 +409,15 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= +github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/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= @@ -451,6 +488,7 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -465,6 +503,9 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw= github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -475,6 +516,7 @@ github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= @@ -527,18 +569,26 @@ github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uM github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= 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-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= 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-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.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= 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= @@ -554,8 +604,11 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= 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/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 h1:uUjLpLt6bVvZ72SQc/B4dXcPBw4Vgd7soowdRl52qEM= github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87/go.mod h1:XGsKKeXxeRr95aEOgipvluMPlgjr7dGlk9ZTWOjcUcg= github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= @@ -563,6 +616,7 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/hudl/fargo v1.4.0/go.mod h1:9Ai6uvFy5fQNq6VPKtg+Ceq1+eTY4nKUlR2JElEOcDo= github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -575,6 +629,7 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb v1.2.3-0.20180221223340-01288bdb0883/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -600,8 +655,9 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u 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/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= github.com/json-iterator/go v1.1.11/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/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/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= @@ -610,6 +666,7 @@ github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod 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/julz/importas v0.0.0-20210419104244-841f0c0fe66d/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= @@ -622,8 +679,10 @@ github.com/kkdai/bstream v1.0.0/go.mod h1:FDnDOHt5Yx4p3FaHcioFT0QjDOtgUpvjeZqAs+ github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.7 h1:0hzRabrMN4tSTvMfnL3SCv1ZGeAP23ynzodBgaHeMeg= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -642,6 +701,7 @@ github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+ github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= github.com/ldez/gomoddirectives v0.2.2/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= github.com/ldez/tagliatelle v0.2.0/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= +github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag= @@ -649,8 +709,10 @@ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= +github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.0.2 h1:QNK2iAFa8gjAe1SPz6mHSMuCcjs+X1wlHzeOSqcmlfs= github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= @@ -666,6 +728,7 @@ github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859 github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= @@ -673,6 +736,7 @@ github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= @@ -691,14 +755,18 @@ github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aks github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= github.com/mgechev/revive v1.1.1/go.mod h1:PKqk4L74K6wVNwY2b6fr+9Qqr/3hIsHVfZCJdbvozrY= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= -github.com/minio/highwayhash v1.0.1 h1:dZ6IIu8Z14VlC0VpfKofAhCy74wu/Qb5gcn52yWoz/0= github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +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/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -720,8 +788,9 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ 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 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= 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/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= @@ -740,10 +809,16 @@ github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= 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/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q= +github.com/nats-io/jwt/v2 v2.0.3/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= +github.com/nats-io/nats-server/v2 v2.5.0/go.mod h1:Kj86UtrXAL6LwYRA6H4RqzkHhK0Vcv2ZnKD5WbQ1t3g= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nats.go v1.12.1/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= 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/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= +github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/neilotoole/errgroup v0.1.5/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= @@ -793,10 +868,12 @@ github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go 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/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/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/otiai10/copy v1.6.0 h1:IinKAryFFuPONZ7cm6T6E2QX/vcJwSnlaA5lfoaXIiQ= @@ -816,11 +893,13 @@ github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCko github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/performancecopilot/speed/v4 v4.0.0/go.mod h1:qxrSyuDGrTOWfV+uKRFhfxw6h/4HXRGUiZiufxo49BM= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= +github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= 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/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -834,6 +913,7 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polyfloyd/go-errorlint v0.0.0-20210722154253-910bb7978349/go.mod h1:wi9BfjxjF/bwiZ701TzmfKu6UKC357IOAtNr0Td0Lvw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= 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 v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -861,8 +941,9 @@ github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB8 github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.29.0 h1:3jqPBvKT4OHAbje2Ql7KeaaSicDBCxMYwEJU1zRJceE= github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.30.0 h1:JEkYlQnpzrzQFxi6gnukFPdQ+ac82oRhzMcIduJu/Ug= +github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= 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.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -871,8 +952,9 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA= @@ -900,8 +982,9 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/cors v1.8.0 h1:P2KMzcFwrPoSjkF1WLRPsp3UMLyql8L4v9hQpVeK5so= +github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM= github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.23.0 h1:UskrK+saS9P9Y789yNNulYKdARjPZuS35B8gJF2x60g= @@ -911,6 +994,7 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/ryancurrah/gomodguard v1.2.3/go.mod h1:rYbA/4Tg5c54mV1sv4sQTP5WOPBcoLtnBZ7/TEhXAbg= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sasha-s/go-deadlock v0.2.0/go.mod h1:StQn567HiB1fF2yJ44N9au7wOhrPS3iZqiDbRupzT10= @@ -968,15 +1052,18 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/spf13/viper v1.9.0 h1:yR6EXjTp0y0cLN8OZg1CRZmOBdI88UcGkhgyJhu6nZk= +github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570/go.mod h1:8OR4w3TdeIHIh1g6EMY5p0gVNOovcWC+1vpc7naMuAw= github.com/steakknife/hamming v0.0.0-20180906055917-c99c65617cd3/go.mod h1:hpGUWaI9xL8pRQCTXQgocU38Qw1g0Us7n5PxxTwTCYU= 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/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= +github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/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.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= @@ -1004,24 +1091,27 @@ github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RM github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= 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/tendermint/spm v0.1.8 h1:ya0o4Um6Hht2LC1X/y0+9Rz0Q8DyUhRIIXR9vgDUTGA= -github.com/tendermint/spm v0.1.8/go.mod h1:iHgfQ5YOI6ONc9E7ugGQolVdfSMHpeXfZ/OpXuN/42Q= +github.com/tendermint/spm v0.1.9 h1:O1DJF4evS8wgk5SZqRcO29irNNtKQmTpvQ0xFzUiczI= +github.com/tendermint/spm v0.1.9/go.mod h1:iHgfQ5YOI6ONc9E7ugGQolVdfSMHpeXfZ/OpXuN/42Q= github.com/tendermint/tendermint v0.34.0-rc4/go.mod h1:yotsojf2C1QBOw4dZrTcxbyxmPUrT4hNuOQWX9XUwB4= github.com/tendermint/tendermint v0.34.0-rc6/go.mod h1:ugzyZO5foutZImv0Iyx/gOFCX6mjJTgbLHTwi17VDVg= github.com/tendermint/tendermint v0.34.0/go.mod h1:Aj3PIipBFSNO21r+Lq3TtzQ+uKESxkbA3yo/INM4QwQ= github.com/tendermint/tendermint v0.34.13/go.mod h1:6RVVRBqwtKhA+H59APKumO+B7Nye4QXSFc6+TYxAxCI= -github.com/tendermint/tendermint v0.34.14 h1:GCXmlS8Bqd2Ix3TQCpwYLUNHe+Y+QyJsm5YE+S/FkPo= github.com/tendermint/tendermint v0.34.14/go.mod h1:FrwVm3TvsVicI9Z7FlucHV6Znfd5KBc/Lpp69cCwtk0= +github.com/tendermint/tendermint v0.34.15 h1:45OEYTBD/TL0YFn8MF7yYJvC5iubyN4AbEjctPi1UqA= +github.com/tendermint/tendermint v0.34.15/go.mod h1:/7EDAw02rD7GT8syC317cX9ZhZTCdaFVvYjU8W+yJSs= github.com/tendermint/tm-db v0.6.2/go.mod h1:GYtQ67SUvATOcoY8/+x6ylk8Qo02BQyLrAs+yAcLvGI= github.com/tendermint/tm-db v0.6.3/go.mod h1:lfA1dL9/Y/Y8wwyPp2NMLyn5P5Ptr/gvDFNWtrCWSf8= -github.com/tendermint/tm-db v0.6.4 h1:3N2jlnYQkXNQclQwd/eKV/NzlqPlfK21cpRRIx80XXQ= github.com/tendermint/tm-db v0.6.4/go.mod h1:dptYhIpJ2M5kUuenLr+Yyf3zQOv1SgBZcl8/BmWlMBw= +github.com/tendermint/tm-db v0.6.6 h1:EzhaOfR0bdKyATqcd5PNeyeq8r+V4bRPHBfyFdD9kGM= +github.com/tendermint/tm-db v0.6.6/go.mod h1:wP8d49A85B7/erz/r4YbKssKw6ylsO/hKtFk7E1aWZI= github.com/tetafro/godot v1.4.9/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/sjson v1.1.4/go.mod h1:wXpKXu8CtDjKAZ+3DrKY5ROCorDFahq8l0tey/Lx1fg= github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/tinylib/msgp v1.1.5/go.mod h1:eQsjooMTnV42mHu917E26IogZ2930nFyBQdofk10Udg= github.com/tklauser/go-sysconf v0.3.7/go.mod h1:JZIdXh4RmBvZDBZ41ld2bGxRV3n4daiiqA3skYhAoQ4= github.com/tklauser/numcpus v0.2.3/go.mod h1:vpEPS/JC+oZGGQ/My/vJnNsvMDQL6PwOqt8dsCw5j+E= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= @@ -1030,7 +1120,9 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1 github.com/tomarrell/wrapcheck/v2 v2.3.0/go.mod h1:aF5rnkdtqNWP/gC7vPUO5pKsB0Oac2FDTQP4F+dpZMU= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/tommy-muehle/go-mnd/v2 v2.4.0/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= +github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= github.com/tyler-smith/go-bip39 v1.0.2/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -1072,13 +1164,15 @@ github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWp go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -1093,14 +1187,18 @@ 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/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= 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.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= 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.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1113,9 +1211,11 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1124,10 +1224,16 @@ golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210915214749-c084706c2272 h1:3erb+vDS8lU1sxfDHF4/hhWyaXnhIaO+7RgL4fDZORA= +golang.org/x/crypto v0.0.0-20210915214749-c084706c2272/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= @@ -1139,6 +1245,7 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -1218,9 +1325,13 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f h1:w6wWR0H+nyVpbSAQbzVEIACVyr/h8l/BEkY6Sokc7Eg= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210903162142-ad29c8ab022f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211005001312-d4b1ae081e3b h1:SXy8Ld8oKlcogOvUAh0J5Pm5RKzgYBMMxLxt6n5XW50= +golang.org/x/net v0.0.0-20211005001312-d4b1ae081e3b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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= @@ -1234,6 +1345,9 @@ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/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= @@ -1268,9 +1382,11 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/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-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1279,12 +1395,14 @@ golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191115151921-52ab43148777/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-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/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= @@ -1305,6 +1423,7 @@ golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1314,6 +1433,7 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1322,12 +1442,18 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210903071746-97244b99971b h1:3Dq0eVHn0uaQJmPO+/aYPI/fRMqdrVDbu7MQcku54gg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211004093028-2c5d950f24ef h1:fPxZ3Umkct3LZ8gK9nbk+DWDJ9fstZa2grBn+lWVKPs= +golang.org/x/sys v0.0.0-20211004093028-2c5d950f24ef/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1338,16 +1464,19 @@ 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 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1364,6 +1493,7 @@ golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgw 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-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1423,6 +1553,7 @@ golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82u golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1447,6 +1578,10 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= 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= @@ -1471,6 +1606,12 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= 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= @@ -1531,12 +1672,23 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83 h1:3V2dxSZpz4zozWWUq36vUxXEKnSYitEH2LdsAx+RUmg= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4 h1:ysnBoUyeL/H6RCvNRhWHjKoDEmguI+mPU+qHgK8qv/w= +google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1564,6 +1716,8 @@ gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS 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/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= @@ -1605,7 +1759,9 @@ mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7/go.mod h1:hBpJkZE8H/sb+VRFvw nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= From 345baa2771d6c542288ee07408306fa01b9ba5fb Mon Sep 17 00:00:00 2001 From: harish Date: Mon, 14 Feb 2022 16:49:37 +0530 Subject: [PATCH 12/12] feat: royalty share transfer to nft creator on buy nft --- x/marketplace/keeper/events.go | 92 +++++++++++++++++++++++++ x/marketplace/keeper/keeper.go | 90 +++++++++++++++++------- x/marketplace/keeper/msg_server.go | 37 ++-------- x/marketplace/types/events.go | 25 ++++--- x/marketplace/types/expected_keepers.go | 4 +- x/marketplace/types/validation.go | 4 +- 6 files changed, 181 insertions(+), 71 deletions(-) create mode 100644 x/marketplace/keeper/events.go diff --git a/x/marketplace/keeper/events.go b/x/marketplace/keeper/events.go new file mode 100644 index 0000000..9aaebfb --- /dev/null +++ b/x/marketplace/keeper/events.go @@ -0,0 +1,92 @@ +package keeper + +import ( + "github.com/OmniFlix/marketplace/x/marketplace/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (k *Keeper) createListNftEvent(ctx sdk.Context, owner sdk.AccAddress, listingId, denomId, nftId string, price sdk.Coin) { + ctx.EventManager().EmitEvents(sdk.Events{ + sdk.NewEvent( + types.EventTypeListNFT, + sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), + sdk.NewAttribute(types.AttributeKeyOwner, owner.String()), + sdk.NewAttribute(types.AttributeKeyListingId, listingId), + sdk.NewAttribute(types.AttributeKeyDenomId, denomId), + sdk.NewAttribute(types.AttributeKeyNftId, nftId), + sdk.NewAttribute(types.AttributeKeyAmount, price.String()), + ), + }) +} + +func (k *Keeper) createDeListNftEvent(ctx sdk.Context, sender sdk.AccAddress, listingId string) { + ctx.EventManager().EmitEvents(sdk.Events{ + sdk.NewEvent( + types.EventTypeDeListNFT, + sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), + sdk.NewAttribute(sdk.AttributeKeySender, sender.String()), + sdk.NewAttribute(types.AttributeKeyListingId, listingId), + ), + }) +} + +func (k *Keeper) createEditListingEvent(ctx sdk.Context, sender sdk.AccAddress, listingId string, price sdk.Coin) { + ctx.EventManager().EmitEvents(sdk.Events{ + sdk.NewEvent( + types.EventTypeEditListing, + sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), + sdk.NewAttribute(sdk.AttributeKeySender, sender.String()), + sdk.NewAttribute(types.AttributeKeyListingId, listingId), + sdk.NewAttribute(types.AttributeKeyAmount, price.String()), + ), + }) +} + +func (k *Keeper) createBuyNftEvent(ctx sdk.Context, buyer sdk.AccAddress, listId, nftId string, price sdk.Coin) { + ctx.EventManager().EmitEvents(sdk.Events{ + sdk.NewEvent( + types.EventTypeBuyNFT, + sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), + sdk.NewAttribute(types.AttributeKeyBuyer, buyer.String()), + sdk.NewAttribute(types.AttributeKeyListingId, listId), + sdk.NewAttribute(types.AttributeKeyNftId, nftId), + sdk.NewAttribute(types.AttributeKeyAmount, price.String()), + ), + }) +} + +func (k *Keeper) createRoyaltyShareTransferEvent(ctx sdk.Context, sender, recipient sdk.AccAddress, amount sdk.Coin) { + ctx.EventManager().EmitEvents(sdk.Events{ + sdk.NewEvent( + types.EventTypeRoyaltyShareTransfer, + sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), + sdk.NewAttribute(sdk.AttributeKeySender, sender.String()), + sdk.NewAttribute(types.AttributeKeyRecipient, recipient.String()), + sdk.NewAttribute(types.AttributeKeyAmount, amount.String()), + ), + }) +} + +func (k *Keeper) createSplitShareTransferEvent(ctx sdk.Context, sender, recipient sdk.AccAddress, amount sdk.Coin) { + ctx.EventManager().EmitEvents(sdk.Events{ + sdk.NewEvent( + types.EventTypeSplitShareTransfer, + sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), + sdk.NewAttribute(sdk.AttributeKeySender, sender.String()), + sdk.NewAttribute(types.AttributeKeyRecipient, recipient.String()), + sdk.NewAttribute(types.AttributeKeyAmount, amount.String()), + ), + }) +} + +func (k *Keeper) createSaleCommissionTransferEvent(ctx sdk.Context, sender, recipient sdk.AccAddress, amount sdk.Coin) { + ctx.EventManager().EmitEvents(sdk.Events{ + sdk.NewEvent( + types.EventTypeSaleCommissionTransfer, + sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), + sdk.NewAttribute(sdk.AttributeKeySender, sender.String()), + sdk.NewAttribute(types.AttributeKeyRecipient, recipient.String()), + sdk.NewAttribute(types.AttributeKeyAmount, amount.String()), + ), + }) +} diff --git a/x/marketplace/keeper/keeper.go b/x/marketplace/keeper/keeper.go index 86f05f2..1551a7f 100644 --- a/x/marketplace/keeper/keeper.go +++ b/x/marketplace/keeper/keeper.go @@ -2,13 +2,12 @@ package keeper import ( "fmt" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/tendermint/tendermint/libs/log" - "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" + "github.com/tendermint/tendermint/libs/log" "github.com/OmniFlix/marketplace/x/marketplace/types" ) @@ -103,7 +102,16 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress if err != nil { return err } + denom, err := k.nftKeeper.GetDenom(ctx, listing.DenomId) + if err != nil { + return err + } listingPriceCoin := listing.Price + listingSaleAmountCoin := listingPriceCoin + nft, err := k.nftKeeper.GetONFT(ctx, listing.DenomId, listing.NftId) + if err != nil { + return err + } err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, buyer, types.ModuleName, sdk.NewCoins(listingPriceCoin)) if err != nil { @@ -116,16 +124,33 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress return err } saleCommission := k.GetSaleCommission(ctx) - marketplaceCoin := k.GetProportions(ctx, listing.Price, saleCommission) - err = k.DistributeCommission(ctx, marketplaceCoin) - if err != nil { - return err + marketplaceCoin := k.GetProportions(listing.Price, saleCommission) + if marketplaceCoin.Amount.GTE(sdk.OneInt()) { + err = k.DistributeCommission(ctx, marketplaceCoin) + if err != nil { + return err + } + listingSaleAmountCoin = listingPriceCoin.Sub(marketplaceCoin) } - listingSaleCoin := listingPriceCoin.Sub(marketplaceCoin) + if nft.GetRoyaltyShare().GT(sdk.ZeroDec()) { + nftRoyaltyShareCoin := k.GetProportions(listingSaleAmountCoin, nft.GetRoyaltyShare()) + creator, err := sdk.AccAddressFromBech32(denom.Creator) + if err != nil { + return err + } + err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, creator, sdk.NewCoins(nftRoyaltyShareCoin)) + if err != nil { + return err + } + k.createRoyaltyShareTransferEvent(ctx, k.accountKeeper.GetModuleAddress(types.ModuleName), creator, nftRoyaltyShareCoin) + listingSaleAmountCoin = listingSaleAmountCoin.Sub(nftRoyaltyShareCoin) + } + remaining := listingSaleAmountCoin if len(listing.SplitShares) > 0 { for _, share := range listing.SplitShares { - sharePortionCoins := sdk.NewCoins(k.GetProportions(ctx, listingSaleCoin, share.Weight)) + sharePortionCoin := k.GetProportions(listingSaleAmountCoin, share.Weight) + sharePortionCoins := sdk.NewCoins(sharePortionCoin) if share.Address == "" { err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sharePortionCoins) if err != nil { @@ -141,10 +166,16 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress if err != nil { return err } + k.createSplitShareTransferEvent(ctx, k.accountKeeper.GetModuleAddress(types.ModuleName), saleSplitAddr, sharePortionCoin) } + remaining = remaining.Sub(sharePortionCoin) + } + err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sdk.NewCoins(remaining)) + if err != nil { + return err } } else { - err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sdk.NewCoins(listingSaleCoin)) + err = k.bankKeeper.SendCoinsFromModuleToAccount(ctx, types.ModuleName, owner, sdk.NewCoins(remaining)) if err != nil { return err } @@ -154,29 +185,40 @@ func (k Keeper) Buy(ctx sdk.Context, listing types.Listing, buyer sdk.AccAddress return nil } -func (k Keeper) GetProportions(ctx sdk.Context, totalCoin sdk.Coin, ratio sdk.Dec) sdk.Coin { +func (k Keeper) GetProportions(totalCoin sdk.Coin, ratio sdk.Dec) sdk.Coin { return sdk.NewCoin(totalCoin.Denom, totalCoin.Amount.ToDec().Mul(ratio).TruncateInt()) } func (k Keeper) DistributeCommission(ctx sdk.Context, marketplaceCoin sdk.Coin) error { distrParams := k.GetMarketplaceDistributionParams(ctx) - if distrParams.Staking.GT(sdk.ZeroDec()) { - stakingCommissionCoins := sdk.NewCoins(k.GetProportions(ctx, marketplaceCoin, distrParams.Staking)) - err := k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.ModuleName, authtypes.FeeCollectorName, stakingCommissionCoins) + stakingCommissionCoin := k.GetProportions(marketplaceCoin, distrParams.Staking) + if distrParams.Staking.GT(sdk.ZeroDec()) && stakingCommissionCoin.Amount.GT(sdk.ZeroInt()) { + err := k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.ModuleName, authtypes.FeeCollectorName, sdk.NewCoins(stakingCommissionCoin)) if err != nil { return err } - } - if distrParams.CommunityPool.GT(sdk.ZeroDec()) { - communityPoolCommissionCoins := sdk.NewCoins(k.GetProportions(ctx, marketplaceCoin, distrParams.CommunityPool)) - err := k.distributionKeeper.FundCommunityPool( - ctx, - communityPoolCommissionCoins, + k.createSaleCommissionTransferEvent(ctx, k.accountKeeper.GetModuleAddress(types.ModuleName), + k.accountKeeper.GetModuleAddress(authtypes.FeeCollectorName), + stakingCommissionCoin, ) - if err != nil { - return err - } + marketplaceCoin = marketplaceCoin.Sub(stakingCommissionCoin) } + communityPoolCommissionCoin := marketplaceCoin + + err := k.distributionKeeper.FundCommunityPool( + ctx, + sdk.NewCoins(communityPoolCommissionCoin), + k.accountKeeper.GetModuleAddress(types.ModuleName), + ) + if err != nil { + return err + } + k.createSaleCommissionTransferEvent(ctx, + k.accountKeeper.GetModuleAddress(types.ModuleName), + k.accountKeeper.GetModuleAddress("distribution"), + communityPoolCommissionCoin, + ) + return nil } diff --git a/x/marketplace/keeper/msg_server.go b/x/marketplace/keeper/msg_server.go index 959c90f..6b863e0 100644 --- a/x/marketplace/keeper/msg_server.go +++ b/x/marketplace/keeper/msg_server.go @@ -45,14 +45,7 @@ func (m msgServer) ListNFT(goCtx context.Context, msg *types.MsgListNFT) (*types return nil, err } - ctx.EventManager().EmitTypedEvent( - &types.EventListNFT{ - Id: listing.Id, - NftId: listing.NftId, - DenomId: listing.DenomId, - Owner: listing.Owner, - }, - ) + m.Keeper.createListNftEvent(ctx, owner, listing.Id, listing.DenomId, listing.NftId, listing.Price) return &types.MsgListNFTResponse{}, nil } @@ -79,14 +72,7 @@ func (m msgServer) EditListing(goCtx context.Context, listing.Price = msg.Price m.Keeper.SetListing(ctx, listing) - ctx.EventManager().EmitTypedEvent( - &types.EventEditListing{ - Id: listing.Id, - NftId: listing.NftId, - DenomId: listing.DenomId, - Owner: listing.Owner, - }, - ) + m.Keeper.createEditListingEvent(ctx, owner, listing.Id, listing.Price) return &types.MsgEditListingResponse{}, nil } @@ -113,14 +99,7 @@ func (m msgServer) DeListNFT(goCtx context.Context, } m.Keeper.DeleteListing(ctx, listing) - ctx.EventManager().EmitTypedEvent( - &types.EventDeListNFT{ - Id: listing.Id, - NftId: listing.NftId, - DenomId: listing.DenomId, - Owner: listing.Owner, - }, - ) + m.Keeper.createDeListNftEvent(ctx, owner, listing.Id) return &types.MsgDeListNFTResponse{}, nil } @@ -156,15 +135,7 @@ func (m msgServer) BuyNFT(goCtx context.Context, msg *types.MsgBuyNFT) (*types.M return nil, err } - ctx.EventManager().EmitTypedEvent( - &types.EventBuyNFT{ - Id: listing.Id, - NftId: listing.NftId, - DenomId: listing.DenomId, - Owner: listing.Owner, - Buyer: msg.Buyer, - }, - ) + m.Keeper.createBuyNftEvent(ctx, buyer, listing.Id, listing.NftId, listing.Price) return &types.MsgBuyNFTResponse{}, nil } diff --git a/x/marketplace/types/events.go b/x/marketplace/types/events.go index f50ba37..9dd91d1 100644 --- a/x/marketplace/types/events.go +++ b/x/marketplace/types/events.go @@ -1,15 +1,20 @@ package types const ( - EventTypeListNFT = "list_nft" - EventTypeEditListing = "edit_listing" - EventTypeDeListNFT = "de_list_nft" - EventTypeBuyNFT = "buy_nft" - AttributeValueCategory = ModuleName + EventTypeListNFT = "list_nft" + EventTypeEditListing = "edit_listing" + EventTypeDeListNFT = "de_list_nft" + EventTypeBuyNFT = "buy_nft" + EventTypeRoyaltyShareTransfer = "royalty_share_transfer" + EventTypeSplitShareTransfer = "split_share_transfer" + EventTypeSaleCommissionTransfer = "sale_commission_transfer" - AttributeKeyListingId = "listing_id" - AttributeKeyCreator = "creator" - AttributeKeyBuyer = "buyer" - AttributeKeyOwner = "owner" - AttributeKeyRecipient = "recipient" + AttributeValueCategory = ModuleName + AttributeKeyListingId = "listing-id" + AttributeKeyDenomId = "denom-id" + AttributeKeyNftId = "nft-id" + AttributeKeyBuyer = "buyer" + AttributeKeyOwner = "owner" + AttributeKeyRecipient = "recipient" + AttributeKeyAmount = "amount" ) diff --git a/x/marketplace/types/expected_keepers.go b/x/marketplace/types/expected_keepers.go index 07903de..7e5ca8c 100644 --- a/x/marketplace/types/expected_keepers.go +++ b/x/marketplace/types/expected_keepers.go @@ -19,7 +19,7 @@ type BankKeeper interface { SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins SendCoins(ctx sdk.Context, from sdk.AccAddress, to sdk.AccAddress, amount sdk.Coins) error SendCoinsFromModuleToAccount(ctx sdk.Context, formModule string, toAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromModuleToModule(ctx sdk.Context, formModule string, toModule string, amt sdk.Coins) error + SendCoinsFromModuleToModule(ctx sdk.Context, formModule string, toModule string, amt sdk.Coins) error SendCoinsFromAccountToModule(ctx sdk.Context, fromAddr sdk.AccAddress, toModule string, amt sdk.Coins) error } @@ -33,4 +33,4 @@ type NftKeeper interface { // DistributionKeeper defines the expected distribution keeper type DistributionKeeper interface { FundCommunityPool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error -} \ No newline at end of file +} diff --git a/x/marketplace/types/validation.go b/x/marketplace/types/validation.go index 1a75502..0f4cab7 100644 --- a/x/marketplace/types/validation.go +++ b/x/marketplace/types/validation.go @@ -69,8 +69,8 @@ func ValidateSplitShares(splitShares []WeightedAddress) error { } totalWeight = totalWeight.Add(share.Weight) } - if !totalWeight.Equal(sdk.NewDec(1)) { - return sdkerrors.Wrapf(ErrInvalidSplits, "invalid weights, total sum of weights must be equal to %d", 1) + if !totalWeight.LTE(sdk.OneDec()) { + return sdkerrors.Wrapf(ErrInvalidSplits, "invalid weights, total sum of weights must be less than %d", 1) } return nil }