forked from cerc-io/laconicd
Prathamesh Musale
cb1f723475
To be added in an upcoming PR: - commands to commit, reveal and get bids Reviewed-on: deep-stack/laconic2d#2 Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com> Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package auction
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"encoding/hex"
|
|
"fmt"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
)
|
|
|
|
// Auction status values.
|
|
const (
|
|
// Auction is in commit phase.
|
|
AuctionStatusCommitPhase = "commit"
|
|
|
|
// Auction is in reveal phase.
|
|
AuctionStatusRevealPhase = "reveal"
|
|
|
|
// Auction has ended (no reveals allowed).
|
|
AuctionStatusExpired = "expired"
|
|
|
|
// Auction has completed (winner selected).
|
|
AuctionStatusCompleted = "completed"
|
|
)
|
|
|
|
// Bid status values.
|
|
const (
|
|
BidStatusCommitted = "commit"
|
|
BidStatusRevealed = "reveal"
|
|
)
|
|
|
|
// AuctionId simplifies generation of auction IDs.
|
|
type AuctionId struct {
|
|
Address sdk.Address
|
|
AccNum uint64
|
|
Sequence uint64
|
|
}
|
|
|
|
// Generate creates the auction ID.
|
|
func (auctionId AuctionId) Generate() string {
|
|
hasher := sha256.New()
|
|
str := fmt.Sprintf("%s:%d:%d", auctionId.Address.String(), auctionId.AccNum, auctionId.Sequence)
|
|
hasher.Write([]byte(str))
|
|
return hex.EncodeToString(hasher.Sum(nil))
|
|
}
|
|
|
|
func (auction Auction) GetCreateTime() string {
|
|
return string(sdk.FormatTimeBytes(auction.CreateTime))
|
|
}
|
|
|
|
func (auction Auction) GetCommitsEndTime() string {
|
|
return string(sdk.FormatTimeBytes(auction.CommitsEndTime))
|
|
}
|
|
|
|
func (auction Auction) GetRevealsEndTime() string {
|
|
return string(sdk.FormatTimeBytes(auction.RevealsEndTime))
|
|
}
|
|
|
|
func (bid Bid) GetCommitTime() string {
|
|
return string(sdk.FormatTimeBytes(bid.CommitTime))
|
|
}
|
|
|
|
func (bid Bid) GetRevealTime() string {
|
|
return string(sdk.FormatTimeBytes(bid.RevealTime))
|
|
}
|