fairauction

package
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2021 License: Apache-2.0, BSD-2-Clause, Apache-2.0, + 1 more Imports: 1 Imported by: 0

README

fairauction

Sample smart contract

Allows an auctioneer to auction a number of tokens.
The contract owner takes a small fee.
The contract guarantees that the tokens will be sent to the highest bidder,
and that the losing bidders will be completely refunded. 
Everyone involved stakes their tokens, so there is no possibility for anyone
to cheat.

Documentation

Index

Constants

View Source
const (
	ScName        = "fairauction"
	ScDescription = "Decentralized auction to securely sell tokens to the highest bidder"
	HScName       = wasmlib.ScHname(0x1b5c43b1)
)
View Source
const (
	ParamColor       = wasmlib.Key("color")
	ParamDescription = wasmlib.Key("description")
	ParamDuration    = wasmlib.Key("duration")
	ParamMinimumBid  = wasmlib.Key("minimumBid")
	ParamOwnerMargin = wasmlib.Key("ownerMargin")
)
View Source
const (
	ResultBidders       = wasmlib.Key("bidders")
	ResultColor         = wasmlib.Key("color")
	ResultCreator       = wasmlib.Key("creator")
	ResultDeposit       = wasmlib.Key("deposit")
	ResultDescription   = wasmlib.Key("description")
	ResultDuration      = wasmlib.Key("duration")
	ResultHighestBid    = wasmlib.Key("highestBid")
	ResultHighestBidder = wasmlib.Key("highestBidder")
	ResultMinimumBid    = wasmlib.Key("minimumBid")
	ResultNumTokens     = wasmlib.Key("numTokens")
	ResultOwnerMargin   = wasmlib.Key("ownerMargin")
	ResultWhenStarted   = wasmlib.Key("whenStarted")
)
View Source
const (
	StateAuctions    = wasmlib.Key("auctions")
	StateBidderList  = wasmlib.Key("bidderList")
	StateBids        = wasmlib.Key("bids")
	StateOwnerMargin = wasmlib.Key("ownerMargin")
)
View Source
const (
	FuncFinalizeAuction = "finalizeAuction"
	FuncPlaceBid        = "placeBid"
	FuncSetOwnerMargin  = "setOwnerMargin"
	FuncStartAuction    = "startAuction"
	ViewGetInfo         = "getInfo"
)
View Source
const (
	HFuncFinalizeAuction = wasmlib.ScHname(0x8d534ddc)
	HFuncPlaceBid        = wasmlib.ScHname(0x9bd72fa9)
	HFuncSetOwnerMargin  = wasmlib.ScHname(0x1774461a)
	HFuncStartAuction    = wasmlib.ScHname(0xd5b7bacb)
	HViewGetInfo         = wasmlib.ScHname(0xcfedba5f)
)
View Source
const (
	DurationDefault      = 60
	DurationMin          = 1
	DurationMax          = 120
	MaxDescriptionLength = 150
	OwnerMarginDefault   = 50
	OwnerMarginMin       = 5
	OwnerMarginMax       = 100
)
View Source
const (
	IdxParamColor          = 0
	IdxParamDescription    = 1
	IdxParamDuration       = 2
	IdxParamMinimumBid     = 3
	IdxParamOwnerMargin    = 4
	IdxResultBidders       = 5
	IdxResultColor         = 6
	IdxResultCreator       = 7
	IdxResultDeposit       = 8
	IdxResultDescription   = 9
	IdxResultDuration      = 10
	IdxResultHighestBid    = 11
	IdxResultHighestBidder = 12
	IdxResultMinimumBid    = 13
	IdxResultNumTokens     = 14
	IdxResultOwnerMargin   = 15
	IdxResultWhenStarted   = 16
	IdxStateAuctions       = 17
	IdxStateBidderList     = 18
	IdxStateBids           = 19
	IdxStateOwnerMargin    = 20
)

Variables

This section is empty.

Functions

func OnLoad

func OnLoad()

Types

type ArrayOfImmutableAgentID

type ArrayOfImmutableAgentID struct {
	// contains filtered or unexported fields
}

func (ArrayOfImmutableAgentID) GetAgentID

func (ArrayOfImmutableAgentID) Length

func (a ArrayOfImmutableAgentID) Length() int32

type ArrayOfMutableAgentID

type ArrayOfMutableAgentID struct {
	// contains filtered or unexported fields
}

func (ArrayOfMutableAgentID) Clear

func (a ArrayOfMutableAgentID) Clear()

func (ArrayOfMutableAgentID) GetAgentID

func (ArrayOfMutableAgentID) Length

func (a ArrayOfMutableAgentID) Length() int32

type Auction

type Auction struct {
	Color         wasmlib.ScColor   // color of tokens for sale
	Creator       wasmlib.ScAgentID // issuer of start_auction transaction
	Deposit       int64             // deposit by auction owner to cover the SC fees
	Description   string            // auction description
	Duration      int32             // auction duration in minutes
	HighestBid    int64             // the current highest bid amount
	HighestBidder wasmlib.ScAgentID // the current highest bidder
	MinimumBid    int64             // minimum bid amount
	NumTokens     int64             // number of tokens for sale
	OwnerMargin   int64             // auction owner's margin in promilles
	WhenStarted   int64             // timestamp when auction started
}

func NewAuctionFromBytes

func NewAuctionFromBytes(bytes []byte) *Auction

func (*Auction) Bytes

func (o *Auction) Bytes() []byte

type Bid

type Bid struct {
	Amount    int64 // cumulative amount of bids from same bidder
	Index     int32 // index of bidder in bidder list
	Timestamp int64 // timestamp of most recent bid
}

func NewBidFromBytes

func NewBidFromBytes(bytes []byte) *Bid

func (*Bid) Bytes

func (o *Bid) Bytes() []byte

type FinalizeAuctionCall

type FinalizeAuctionCall struct {
	Func   *wasmlib.ScFunc
	Params MutableFinalizeAuctionParams
}

type FinalizeAuctionContext

type FinalizeAuctionContext struct {
	Params ImmutableFinalizeAuctionParams
	State  MutableFairAuctionState
}

type Funcs

type Funcs struct{}
var ScFuncs Funcs

func (Funcs) FinalizeAuction

func (sc Funcs) FinalizeAuction(ctx wasmlib.ScFuncCallContext) *FinalizeAuctionCall

func (Funcs) GetInfo

func (sc Funcs) GetInfo(ctx wasmlib.ScViewCallContext) *GetInfoCall

func (Funcs) PlaceBid

func (sc Funcs) PlaceBid(ctx wasmlib.ScFuncCallContext) *PlaceBidCall

func (Funcs) SetOwnerMargin

func (sc Funcs) SetOwnerMargin(ctx wasmlib.ScFuncCallContext) *SetOwnerMarginCall

func (Funcs) StartAuction

func (sc Funcs) StartAuction(ctx wasmlib.ScFuncCallContext) *StartAuctionCall

type GetInfoCall

type GetInfoCall struct {
	Func    *wasmlib.ScView
	Params  MutableGetInfoParams
	Results ImmutableGetInfoResults
}

type GetInfoContext

type GetInfoContext struct {
	Params  ImmutableGetInfoParams
	Results MutableGetInfoResults
	State   ImmutableFairAuctionState
}

type ImmutableAuction

type ImmutableAuction struct {
	// contains filtered or unexported fields
}

func (ImmutableAuction) Exists

func (o ImmutableAuction) Exists() bool

func (ImmutableAuction) Value

func (o ImmutableAuction) Value() *Auction

type ImmutableBid

type ImmutableBid struct {
	// contains filtered or unexported fields
}

func (ImmutableBid) Exists

func (o ImmutableBid) Exists() bool

func (ImmutableBid) Value

func (o ImmutableBid) Value() *Bid

type ImmutableBidderList

type ImmutableBidderList = ArrayOfImmutableAgentID

type ImmutableBids

type ImmutableBids = MapAgentIDToImmutableBid

type ImmutableFairAuctionState

type ImmutableFairAuctionState struct {
	// contains filtered or unexported fields
}

func (ImmutableFairAuctionState) Auctions

func (ImmutableFairAuctionState) BidderList

func (ImmutableFairAuctionState) Bids

func (ImmutableFairAuctionState) OwnerMargin

type ImmutableFinalizeAuctionParams

type ImmutableFinalizeAuctionParams struct {
	// contains filtered or unexported fields
}

func (ImmutableFinalizeAuctionParams) Color

type ImmutableGetInfoParams

type ImmutableGetInfoParams struct {
	// contains filtered or unexported fields
}

func (ImmutableGetInfoParams) Color

type ImmutableGetInfoResults

type ImmutableGetInfoResults struct {
	// contains filtered or unexported fields
}

func (ImmutableGetInfoResults) Bidders

func (ImmutableGetInfoResults) Color

func (ImmutableGetInfoResults) Creator

func (ImmutableGetInfoResults) Deposit

func (ImmutableGetInfoResults) Description

func (ImmutableGetInfoResults) Duration

func (ImmutableGetInfoResults) HighestBid

func (ImmutableGetInfoResults) HighestBidder

func (ImmutableGetInfoResults) MinimumBid

func (ImmutableGetInfoResults) NumTokens

func (ImmutableGetInfoResults) OwnerMargin

func (ImmutableGetInfoResults) WhenStarted

type ImmutablePlaceBidParams

type ImmutablePlaceBidParams struct {
	// contains filtered or unexported fields
}

func (ImmutablePlaceBidParams) Color

type ImmutableSetOwnerMarginParams

type ImmutableSetOwnerMarginParams struct {
	// contains filtered or unexported fields
}

func (ImmutableSetOwnerMarginParams) OwnerMargin

type ImmutableStartAuctionParams

type ImmutableStartAuctionParams struct {
	// contains filtered or unexported fields
}

func (ImmutableStartAuctionParams) Color

func (ImmutableStartAuctionParams) Description

func (ImmutableStartAuctionParams) Duration

func (ImmutableStartAuctionParams) MinimumBid

type MapAgentIDToImmutableBid

type MapAgentIDToImmutableBid struct {
	// contains filtered or unexported fields
}

func (MapAgentIDToImmutableBid) GetBid

type MapAgentIDToMutableBid

type MapAgentIDToMutableBid struct {
	// contains filtered or unexported fields
}

func (MapAgentIDToMutableBid) Clear

func (m MapAgentIDToMutableBid) Clear()

func (MapAgentIDToMutableBid) GetBid

type MapColorToImmutableAuction

type MapColorToImmutableAuction struct {
	// contains filtered or unexported fields
}

func (MapColorToImmutableAuction) GetAuction

type MapColorToImmutableBidderList

type MapColorToImmutableBidderList struct {
	// contains filtered or unexported fields
}

func (MapColorToImmutableBidderList) GetBidderList

type MapColorToImmutableBids

type MapColorToImmutableBids struct {
	// contains filtered or unexported fields
}

func (MapColorToImmutableBids) GetBids

type MapColorToMutableAuction

type MapColorToMutableAuction struct {
	// contains filtered or unexported fields
}

func (MapColorToMutableAuction) Clear

func (m MapColorToMutableAuction) Clear()

func (MapColorToMutableAuction) GetAuction

type MapColorToMutableBidderList

type MapColorToMutableBidderList struct {
	// contains filtered or unexported fields
}

func (MapColorToMutableBidderList) Clear

func (m MapColorToMutableBidderList) Clear()

func (MapColorToMutableBidderList) GetBidderList

type MapColorToMutableBids

type MapColorToMutableBids struct {
	// contains filtered or unexported fields
}

func (MapColorToMutableBids) Clear

func (m MapColorToMutableBids) Clear()

func (MapColorToMutableBids) GetBids

type MutableAuction

type MutableAuction struct {
	// contains filtered or unexported fields
}

func (MutableAuction) Exists

func (o MutableAuction) Exists() bool

func (MutableAuction) SetValue

func (o MutableAuction) SetValue(value *Auction)

func (MutableAuction) Value

func (o MutableAuction) Value() *Auction

type MutableBid

type MutableBid struct {
	// contains filtered or unexported fields
}

func (MutableBid) Exists

func (o MutableBid) Exists() bool

func (MutableBid) SetValue

func (o MutableBid) SetValue(value *Bid)

func (MutableBid) Value

func (o MutableBid) Value() *Bid

type MutableBidderList

type MutableBidderList = ArrayOfMutableAgentID

type MutableBids

type MutableBids = MapAgentIDToMutableBid

type MutableFairAuctionState

type MutableFairAuctionState struct {
	// contains filtered or unexported fields
}

func (MutableFairAuctionState) Auctions

func (MutableFairAuctionState) BidderList

func (MutableFairAuctionState) Bids

func (MutableFairAuctionState) OwnerMargin

type MutableFinalizeAuctionParams

type MutableFinalizeAuctionParams struct {
	// contains filtered or unexported fields
}

func (MutableFinalizeAuctionParams) Color

type MutableGetInfoParams

type MutableGetInfoParams struct {
	// contains filtered or unexported fields
}

func (MutableGetInfoParams) Color

type MutableGetInfoResults

type MutableGetInfoResults struct {
	// contains filtered or unexported fields
}

func (MutableGetInfoResults) Bidders

func (MutableGetInfoResults) Color

func (MutableGetInfoResults) Creator

func (MutableGetInfoResults) Deposit

func (MutableGetInfoResults) Description

func (MutableGetInfoResults) Duration

func (MutableGetInfoResults) HighestBid

func (MutableGetInfoResults) HighestBidder

func (MutableGetInfoResults) MinimumBid

func (MutableGetInfoResults) NumTokens

func (MutableGetInfoResults) OwnerMargin

func (MutableGetInfoResults) WhenStarted

type MutablePlaceBidParams

type MutablePlaceBidParams struct {
	// contains filtered or unexported fields
}

func (MutablePlaceBidParams) Color

type MutableSetOwnerMarginParams

type MutableSetOwnerMarginParams struct {
	// contains filtered or unexported fields
}

func (MutableSetOwnerMarginParams) OwnerMargin

type MutableStartAuctionParams

type MutableStartAuctionParams struct {
	// contains filtered or unexported fields
}

func (MutableStartAuctionParams) Color

func (MutableStartAuctionParams) Description

func (MutableStartAuctionParams) Duration

func (MutableStartAuctionParams) MinimumBid

type PlaceBidCall

type PlaceBidCall struct {
	Func   *wasmlib.ScFunc
	Params MutablePlaceBidParams
}

type PlaceBidContext

type PlaceBidContext struct {
	Params ImmutablePlaceBidParams
	State  MutableFairAuctionState
}

type SetOwnerMarginCall

type SetOwnerMarginCall struct {
	Func   *wasmlib.ScFunc
	Params MutableSetOwnerMarginParams
}

type SetOwnerMarginContext

type SetOwnerMarginContext struct {
	Params ImmutableSetOwnerMarginParams
	State  MutableFairAuctionState
}

type StartAuctionCall

type StartAuctionCall struct {
	Func   *wasmlib.ScFunc
	Params MutableStartAuctionParams
}

type StartAuctionContext

type StartAuctionContext struct {
	Params ImmutableStartAuctionParams
	State  MutableFairAuctionState
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL