WIP type updates

master
michael 2022-09-02 21:03:03 +00:00
parent e8e7680ae2
commit 75c051af04
7 changed files with 234 additions and 26 deletions

View File

@ -20159,9 +20159,16 @@ paths:
type: string type: string
owner: owner:
type: string type: string
leaseStart:
type: string
format: uint64
leaseEnd: leaseEnd:
type: string type: string
format: uint64 format: uint64
closed:
type: boolean
remaining:
type: string
pagination: pagination:
type: object type: object
properties: properties:
@ -20301,9 +20308,16 @@ paths:
type: string type: string
owner: owner:
type: string type: string
leaseStart:
type: string
format: uint64
leaseEnd: leaseEnd:
type: string type: string
format: uint64 format: uint64
closed:
type: boolean
remaining:
type: string
default: default:
description: An unexpected error response. description: An unexpected error response.
schema: schema:
@ -47490,9 +47504,16 @@ definitions:
type: string type: string
owner: owner:
type: string type: string
leaseStart:
type: string
format: uint64
leaseEnd: leaseEnd:
type: string type: string
format: uint64 format: uint64
closed:
type: boolean
remaining:
type: string
cosmostest.cosmostest.Bid: cosmostest.cosmostest.Bid:
type: object type: object
properties: properties:
@ -47546,9 +47567,16 @@ definitions:
type: string type: string
owner: owner:
type: string type: string
leaseStart:
type: string
format: uint64
leaseEnd: leaseEnd:
type: string type: string
format: uint64 format: uint64
closed:
type: boolean
remaining:
type: string
pagination: pagination:
type: object type: object
properties: properties:
@ -47614,9 +47642,16 @@ definitions:
type: string type: string
owner: owner:
type: string type: string
leaseStart:
type: string
format: uint64
leaseEnd: leaseEnd:
type: string type: string
format: uint64 format: uint64
closed:
type: boolean
remaining:
type: string
cosmostest.cosmostest.QueryGetNextAuctionResponse: cosmostest.cosmostest.QueryGetNextAuctionResponse:
type: object type: object
properties: properties:

1
go.mod
View File

@ -87,6 +87,7 @@ require (
github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/handlers v1.5.1 // indirect
github.com/gorilla/websocket v1.5.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/merlin v0.1.1 // indirect
github.com/gtank/ristretto255 v0.1.2 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect

2
go.sum
View File

@ -734,6 +734,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t
github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 h1:lLT7ZLSzGLI08vc9cpd+tYmNWjdKDqyr/2L+f6U12Fk=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU=
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0=
github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= github.com/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s=

View File

@ -14,5 +14,8 @@ message Auction {
string ceiling = 6; string ceiling = 6;
string denom = 7; string denom = 7;
string owner = 8; string owner = 8;
uint64 leaseEnd = 9; uint64 leaseStart = 9;
uint64 leaseEnd = 10;
bool closed = 11;
string remaining = 12;
} }

View File

@ -1,8 +1,10 @@
package keeper package keeper
import ( import (
"cosmos-test/x/cosmostest/math"
"cosmos-test/x/cosmostest/memdb" "cosmos-test/x/cosmostest/memdb"
"math/big" "math/big"
"time"
"github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
@ -25,7 +27,7 @@ func (k *Keeper) FinalizeExpiredAuctions(ctx types.Context) {
auction, found := k.GetAuction(ctx, auctionId) auction, found := k.GetAuction(ctx, auctionId)
// make sure the auction exists on-chain // make sure the auction exists on-chain
if !found { if !found {
return errors.Errorf("auction %s not found on-chain", auctionId) return errors.Errorf("auction %s not found", auctionId)
} }
if uint64(ctx.BlockHeight()) >= auction.Deadline { if uint64(ctx.BlockHeight()) >= auction.Deadline {
@ -35,6 +37,9 @@ func (k *Keeper) FinalizeExpiredAuctions(ctx types.Context) {
return errors.Errorf("could not get highest bid for auction %s: %s", auctionId, err) return errors.Errorf("could not get highest bid for auction %s: %s", auctionId, err)
} }
// Remainig Unpaid: Full bid amount
auction.Remaining = auction.Best.Amount
// clear auction // clear auction
memdb.BidDB.ClearAuction(auctionId) memdb.BidDB.ClearAuction(auctionId)
@ -62,6 +67,34 @@ func (k *Keeper) FinalizeExpiredAuctions(ctx types.Context) {
}) })
} }
func (k *Keeper) VestAuctionPayments(ctx types.Context) { func (k *Keeper) PayAuctionAmountDue(ctx types.Context, auctionId string) error {
auction, found := k.GetAuction(ctx, auctionId)
if !found {
return errors.Errorf("auction %s not found", auctionId)
}
blockTime := ctx.BlockTime()
deadline := time.Unix(int64(auction.Deadline), 0)
if blockTime.After(deadline) {
return nil
} else {
amtTotal := new(big.Int)
amtTotal.SetString(auction.Best.Amount, 10)
amtRemaining := new(big.Int)
amtTotal.SetString(auction.Remaining, 10)
amt, err := math.CalcAmountVestableLinear(
amtTotal,
amtRemaining,
ctx.BlockTime(),
time.Unix(int64(auction.LeaseStart), 0),
time.Unix(int64(auction.LeaseEnd), 0),
)
if err != nil {
return err
}
coins := sdk.NewCoins(sdk.NewCoin(auction.Denom, sdk.NewIntFromBigInt(amt)))
err = k.bank.SendCoinsFromModuleToAccount(ctx, "cosmostest", sdk.AccAddress(auction.Best.Owner), coins)
return err
}
} }

View File

@ -27,10 +27,14 @@ func (k msgServer) NewAuction(goCtx context.Context, msg *types.MsgNewAuction) (
Name: msg.Name, Name: msg.Name,
Description: msg.Description, Description: msg.Description,
// Best: new(types.Bid), // Best: new(types.Bid),
Deadline: uint64(ctx.BlockHeight()) + auctionconfig.AuctionTime, Deadline: uint64(ctx.BlockHeight()) + auctionconfig.AuctionTime,
Denom: msg.Denom, Denom: msg.Denom,
Owner: msg.Creator, Owner: msg.Creator,
Ceiling: msg.Ceiling, Ceiling: msg.Ceiling,
LeaseStart: uint64(ctx.BlockTime().Unix()),
LeaseEnd: msg.LeaseEnd,
Closed: false,
Remaining: "0",
} }
senderAddr, err := sdk.AccAddressFromBech32(msg.Creator) senderAddr, err := sdk.AccAddressFromBech32(msg.Creator)

View File

@ -31,7 +31,10 @@ type Auction struct {
Ceiling string `protobuf:"bytes,6,opt,name=ceiling,proto3" json:"ceiling,omitempty"` Ceiling string `protobuf:"bytes,6,opt,name=ceiling,proto3" json:"ceiling,omitempty"`
Denom string `protobuf:"bytes,7,opt,name=denom,proto3" json:"denom,omitempty"` Denom string `protobuf:"bytes,7,opt,name=denom,proto3" json:"denom,omitempty"`
Owner string `protobuf:"bytes,8,opt,name=owner,proto3" json:"owner,omitempty"` Owner string `protobuf:"bytes,8,opt,name=owner,proto3" json:"owner,omitempty"`
LeaseEnd uint64 `protobuf:"varint,9,opt,name=leaseEnd,proto3" json:"leaseEnd,omitempty"` LeaseStart uint64 `protobuf:"varint,9,opt,name=leaseStart,proto3" json:"leaseStart,omitempty"`
LeaseEnd uint64 `protobuf:"varint,10,opt,name=leaseEnd,proto3" json:"leaseEnd,omitempty"`
Closed bool `protobuf:"varint,11,opt,name=closed,proto3" json:"closed,omitempty"`
Remaining string `protobuf:"bytes,12,opt,name=remaining,proto3" json:"remaining,omitempty"`
} }
func (m *Auction) Reset() { *m = Auction{} } func (m *Auction) Reset() { *m = Auction{} }
@ -123,6 +126,13 @@ func (m *Auction) GetOwner() string {
return "" return ""
} }
func (m *Auction) GetLeaseStart() uint64 {
if m != nil {
return m.LeaseStart
}
return 0
}
func (m *Auction) GetLeaseEnd() uint64 { func (m *Auction) GetLeaseEnd() uint64 {
if m != nil { if m != nil {
return m.LeaseEnd return m.LeaseEnd
@ -130,6 +140,20 @@ func (m *Auction) GetLeaseEnd() uint64 {
return 0 return 0
} }
func (m *Auction) GetClosed() bool {
if m != nil {
return m.Closed
}
return false
}
func (m *Auction) GetRemaining() string {
if m != nil {
return m.Remaining
}
return ""
}
func init() { func init() {
proto.RegisterType((*Auction)(nil), "cosmostest.cosmostest.Auction") proto.RegisterType((*Auction)(nil), "cosmostest.cosmostest.Auction")
} }
@ -137,24 +161,27 @@ func init() {
func init() { proto.RegisterFile("cosmostest/auction.proto", fileDescriptor_631f6f59914101d9) } func init() { proto.RegisterFile("cosmostest/auction.proto", fileDescriptor_631f6f59914101d9) }
var fileDescriptor_631f6f59914101d9 = []byte{ var fileDescriptor_631f6f59914101d9 = []byte{
// 271 bytes of a gzipped FileDescriptorProto // 312 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x90, 0xb1, 0x4e, 0xc3, 0x30, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0xbf, 0x4e, 0xfb, 0x30,
0x10, 0x86, 0xe3, 0x92, 0x36, 0xad, 0xbb, 0x59, 0x45, 0x3a, 0x65, 0xb0, 0x22, 0xa6, 0x2c, 0xb8, 0x10, 0xc7, 0xeb, 0xfe, 0xd2, 0x7f, 0xd7, 0xdf, 0x64, 0x15, 0x74, 0xaa, 0x90, 0x15, 0x31, 0x65,
0x12, 0x2c, 0xac, 0x54, 0xe2, 0x05, 0x32, 0xb2, 0x25, 0xf1, 0x09, 0x59, 0x4a, 0xec, 0x28, 0x36, 0x21, 0x95, 0x60, 0x61, 0xa5, 0x12, 0x2f, 0x10, 0x36, 0x36, 0x37, 0x3e, 0x21, 0x4b, 0x89, 0x5d,
0xa2, 0xcc, 0xbc, 0x00, 0x8f, 0xc5, 0xd8, 0x91, 0x11, 0x25, 0x2f, 0x82, 0x62, 0xab, 0x34, 0x03, 0xc5, 0x46, 0x94, 0xb7, 0xe0, 0xb1, 0x18, 0x3b, 0xc2, 0x86, 0xda, 0x17, 0x41, 0xb1, 0x29, 0xc9,
0xdb, 0x7d, 0xff, 0xdd, 0xe9, 0xff, 0xf5, 0x53, 0xa8, 0x8d, 0x6d, 0x8d, 0x75, 0x68, 0xdd, 0xbe, 0xc0, 0xe6, 0xcf, 0xf7, 0xee, 0x74, 0x1f, 0xf9, 0x00, 0x4b, 0xeb, 0x6a, 0xeb, 0x3c, 0x39, 0xbf,
0x7c, 0xad, 0x9d, 0x32, 0x5a, 0x74, 0xbd, 0x71, 0x86, 0x5d, 0x5f, 0x36, 0xe2, 0x32, 0xa6, 0xbb, 0x92, 0xcf, 0xa5, 0xd7, 0xd6, 0xe4, 0xdb, 0xc6, 0x7a, 0xcb, 0xcf, 0xba, 0x4a, 0xde, 0x3d, 0x97,
0xd9, 0x43, 0xa5, 0x64, 0x38, 0xbe, 0xf9, 0x58, 0xd0, 0xe4, 0x31, 0xbc, 0xb3, 0x1d, 0x5d, 0x2a, 0x8b, 0xde, 0xc0, 0x46, 0xab, 0xd8, 0x7c, 0xf9, 0x39, 0x84, 0xc9, 0x5d, 0x1c, 0xe7, 0x0b, 0x18,
0x2d, 0xf1, 0x08, 0x24, 0x23, 0xf9, 0xa6, 0x08, 0xc0, 0x18, 0x8d, 0x75, 0xd9, 0x22, 0x2c, 0xbc, 0x69, 0xa3, 0x68, 0x87, 0x2c, 0x65, 0xd9, 0xac, 0x88, 0xc0, 0x39, 0x24, 0x46, 0xd6, 0x84, 0xc3,
0xe8, 0x67, 0x96, 0xd1, 0xad, 0x44, 0x5b, 0xf7, 0xaa, 0x9b, 0x1e, 0xe1, 0xca, 0xaf, 0xe6, 0x12, 0x10, 0x86, 0x37, 0x4f, 0x61, 0xae, 0xc8, 0x95, 0x8d, 0xde, 0xb6, 0x83, 0xf8, 0x2f, 0x94, 0xfa,
0x13, 0x34, 0xae, 0xd0, 0x3a, 0x88, 0x33, 0x92, 0x6f, 0xef, 0x52, 0xf1, 0x6f, 0x26, 0x71, 0x50, 0x11, 0xcf, 0x21, 0xd9, 0x90, 0xf3, 0x98, 0xa4, 0x2c, 0x9b, 0x5f, 0x2f, 0xf3, 0x3f, 0x9d, 0xf2,
0xb2, 0xf0, 0x77, 0x2c, 0xa5, 0x6b, 0x89, 0xa5, 0x6c, 0x94, 0x46, 0x58, 0x66, 0x24, 0x8f, 0x8b, 0xb5, 0x56, 0x45, 0xe8, 0xe3, 0x4b, 0x98, 0x2a, 0x92, 0xaa, 0xd2, 0x86, 0x70, 0x94, 0xb2, 0x2c,
0x3f, 0x66, 0x40, 0x93, 0x1a, 0x55, 0xa3, 0xf4, 0x0b, 0xac, 0xbc, 0xd3, 0x19, 0xa7, 0xc4, 0x12, 0x29, 0x7e, 0x99, 0x23, 0x4c, 0x4a, 0xd2, 0x95, 0x36, 0x4f, 0x38, 0x0e, 0x9b, 0x4e, 0xd8, 0x1a,
0xb5, 0x69, 0x21, 0x09, 0x89, 0x3d, 0x4c, 0xaa, 0x79, 0xd3, 0xd8, 0xc3, 0x3a, 0xa8, 0x1e, 0x26, 0x2b, 0x32, 0xb6, 0xc6, 0x49, 0x34, 0x0e, 0xd0, 0xa6, 0xf6, 0xc5, 0x50, 0x83, 0xd3, 0x98, 0x06,
0x87, 0x06, 0x4b, 0x8b, 0x4f, 0x5a, 0xc2, 0x26, 0x38, 0x9c, 0xf9, 0xf0, 0xf0, 0x35, 0x70, 0x72, 0xe0, 0x02, 0xa0, 0x22, 0xe9, 0xe8, 0xc1, 0xcb, 0xc6, 0xe3, 0x2c, 0xec, 0xe8, 0x25, 0xad, 0x41,
0x1a, 0x38, 0xf9, 0x19, 0x38, 0xf9, 0x1c, 0x79, 0x74, 0x1a, 0x79, 0xf4, 0x3d, 0xf2, 0xe8, 0x99, 0xa0, 0x7b, 0xa3, 0x10, 0xa2, 0xc1, 0x89, 0xf9, 0x39, 0x8c, 0xcb, 0xca, 0x3a, 0x52, 0x38, 0x4f,
0x87, 0xb4, 0xb7, 0xbe, 0xb6, 0xe3, 0x7e, 0xd6, 0xa1, 0x7b, 0xef, 0xd0, 0x56, 0x2b, 0x5f, 0xe3, 0x59, 0x36, 0x2d, 0x7e, 0x88, 0x5f, 0xc0, 0xac, 0xa1, 0x5a, 0x6a, 0xd3, 0xba, 0xfd, 0x0f, 0xdb,
0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0x2c, 0x20, 0x51, 0x8f, 0x01, 0x00, 0x00, 0xba, 0x60, 0x7d, 0xfb, 0x7e, 0x10, 0x6c, 0x7f, 0x10, 0xec, 0xeb, 0x20, 0xd8, 0xdb, 0x51, 0x0c,
0xf6, 0x47, 0x31, 0xf8, 0x38, 0x8a, 0xc1, 0xa3, 0x88, 0x7f, 0x70, 0x15, 0x8e, 0xb1, 0x5b, 0xf5,
0x2e, 0xe3, 0x5f, 0xb7, 0xe4, 0x36, 0xe3, 0x70, 0x9c, 0x9b, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff,
0x98, 0x0b, 0x92, 0x45, 0xe5, 0x01, 0x00, 0x00,
} }
func (m *Auction) Marshal() (dAtA []byte, err error) { func (m *Auction) Marshal() (dAtA []byte, err error) {
@ -177,9 +204,31 @@ func (m *Auction) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.Remaining) > 0 {
i -= len(m.Remaining)
copy(dAtA[i:], m.Remaining)
i = encodeVarintAuction(dAtA, i, uint64(len(m.Remaining)))
i--
dAtA[i] = 0x62
}
if m.Closed {
i--
if m.Closed {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x58
}
if m.LeaseEnd != 0 { if m.LeaseEnd != 0 {
i = encodeVarintAuction(dAtA, i, uint64(m.LeaseEnd)) i = encodeVarintAuction(dAtA, i, uint64(m.LeaseEnd))
i-- i--
dAtA[i] = 0x50
}
if m.LeaseStart != 0 {
i = encodeVarintAuction(dAtA, i, uint64(m.LeaseStart))
i--
dAtA[i] = 0x48 dAtA[i] = 0x48
} }
if len(m.Owner) > 0 { if len(m.Owner) > 0 {
@ -292,9 +341,19 @@ func (m *Auction) Size() (n int) {
if l > 0 { if l > 0 {
n += 1 + l + sovAuction(uint64(l)) n += 1 + l + sovAuction(uint64(l))
} }
if m.LeaseStart != 0 {
n += 1 + sovAuction(uint64(m.LeaseStart))
}
if m.LeaseEnd != 0 { if m.LeaseEnd != 0 {
n += 1 + sovAuction(uint64(m.LeaseEnd)) n += 1 + sovAuction(uint64(m.LeaseEnd))
} }
if m.Closed {
n += 2
}
l = len(m.Remaining)
if l > 0 {
n += 1 + l + sovAuction(uint64(l))
}
return n return n
} }
@ -581,6 +640,25 @@ func (m *Auction) Unmarshal(dAtA []byte) error {
m.Owner = string(dAtA[iNdEx:postIndex]) m.Owner = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex iNdEx = postIndex
case 9: case 9:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field LeaseStart", wireType)
}
m.LeaseStart = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAuction
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.LeaseStart |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 10:
if wireType != 0 { if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field LeaseEnd", wireType) return fmt.Errorf("proto: wrong wireType = %d for field LeaseEnd", wireType)
} }
@ -599,6 +677,58 @@ func (m *Auction) Unmarshal(dAtA []byte) error {
break break
} }
} }
case 11:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Closed", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAuction
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Closed = bool(v != 0)
case 12:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Remaining", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAuction
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthAuction
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthAuction
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Remaining = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipAuction(dAtA[iNdEx:]) skippy, err := skipAuction(dAtA[iNdEx:])