shipping

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2018 License: Apache-2.0, Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CodeDuplicateOrderID sdk.CodeType = iota + 600
	CodeUnknownOrder
	CodeDuplicateAddress
	CodeInvalidAssetAmount
	DefaultCodespace sdk.CodespaceType = 10
)

ABCI Response Codes Base SDK reserves 500 - 599.

Variables

View Source
var (
	// Keys for store prefixes
	OrderKey = []byte{0x06} // prefix for each key to a candidate
)

nolint

Functions

func CodeToDefaultMsg

func CodeToDefaultMsg(code sdk.CodeType) string

CodeToDefaultMsg NOTE: Don't stringer this, we'll put better messages in later.

func ErrDuplicateAddress

func ErrDuplicateAddress() sdk.Error

ErrDuplicateAddress ...

func ErrDuplicateOrder

func ErrDuplicateOrder(orderID string) sdk.Error

ErrDuplicateOrder ...

func ErrInavlidAssetAmount

func ErrInavlidAssetAmount() sdk.Error

ErrInavlidAssetAmount ...

func ErrUnknownOrder

func ErrUnknownOrder(orderID string) sdk.Error

ErrUnknownOrder ...

func GetOrderKey

func GetOrderKey(uid []byte) []byte

GetOrderKey get the key for the record with address

func NewHandler

func NewHandler(k Keeper) sdk.Handler

NewHandler ...

func RegisterWire

func RegisterWire(cdc *wire.Codec)

RegisterWire registers concrete types on wire codec

Types

type CancelOrderMsg

type CancelOrderMsg struct {
	OrderID string      `json:"order_id"`  // ID of the order to be cancelled
	Issuer  sdk.Address `json:"issuer_id"` // the issuer
}

CompleteOrderMsg is sent by the receiver to confirm that the receiver has received the asset from the carrier

func (CancelOrderMsg) Get

func (msg CancelOrderMsg) Get(key interface{}) (value interface{})

func (CancelOrderMsg) GetSignBytes

func (msg CancelOrderMsg) GetSignBytes() []byte

GetSignBytes ...

func (CancelOrderMsg) GetSigners

func (msg CancelOrderMsg) GetSigners() []sdk.Address

func (CancelOrderMsg) String

func (msg CancelOrderMsg) String() string

func (CancelOrderMsg) Type

func (msg CancelOrderMsg) Type() string

nolint ...

func (CancelOrderMsg) ValidateBasic

func (msg CancelOrderMsg) ValidateBasic() sdk.Error

ValidateBasic ...

type CompleteOrderMsg

type CompleteOrderMsg struct {
	OrderID  string      `json:"order_id"`    // ID of the order completed
	Receiver sdk.Address `json:"receiver_id"` // the receiver, who confirm the completion of the order
}

CompleteOrderMsg is sent by the receiver to confirm that the receiver has received the asset from the carrier

func (CompleteOrderMsg) Get

func (msg CompleteOrderMsg) Get(key interface{}) (value interface{})

func (CompleteOrderMsg) GetSignBytes

func (msg CompleteOrderMsg) GetSignBytes() []byte

GetSignBytes ...

func (CompleteOrderMsg) GetSigners

func (msg CompleteOrderMsg) GetSigners() []sdk.Address

func (CompleteOrderMsg) String

func (msg CompleteOrderMsg) String() string

func (CompleteOrderMsg) Type

func (msg CompleteOrderMsg) Type() string

nolint ...

func (CompleteOrderMsg) ValidateBasic

func (msg CompleteOrderMsg) ValidateBasic() sdk.Error

ValidateBasic ...

type ConfirmOrderMsg

type ConfirmOrderMsg struct {
	OrderID string      `json:"order_id"`   // ID of the order received
	Carrier sdk.Address `json:"carrier_id"` // the carrier, who confirms the order
}

ReceiveOrderMsg is sent by the carrier to confirm that the carrier has received the asset from the issuer

func (ConfirmOrderMsg) Get

func (msg ConfirmOrderMsg) Get(key interface{}) (value interface{})

func (ConfirmOrderMsg) GetSignBytes

func (msg ConfirmOrderMsg) GetSignBytes() []byte

GetSignBytes ...

func (ConfirmOrderMsg) GetSigners

func (msg ConfirmOrderMsg) GetSigners() []sdk.Address

func (ConfirmOrderMsg) String

func (msg ConfirmOrderMsg) String() string

func (ConfirmOrderMsg) Type

func (msg ConfirmOrderMsg) Type() string

nolint ...

func (ConfirmOrderMsg) ValidateBasic

func (msg ConfirmOrderMsg) ValidateBasic() sdk.Error

ValidateBasic ...

type CreateOrderMsg

type CreateOrderMsg struct {
	ID                string             `json:"id"`                 // ID of the order, provided by the client
	TransportedAssets []TransportedAsset `json:"transported_assets"` // The assets to be transported
	Issuer            sdk.Address        `json:"issuer"`             // The issuer of the order, must also be the owner of the asset (coin)
	Carrier           sdk.Address        `json:"carrier"`            // The carrier
	Receiver          sdk.Address        `json:"receiver"`           // The receiver, often a buyer
}

CreateOrderMsg is sent by the issuer to construct a new order, all fields are required

func (CreateOrderMsg) Get

func (msg CreateOrderMsg) Get(key interface{}) (value interface{})

func (CreateOrderMsg) GetSignBytes

func (msg CreateOrderMsg) GetSignBytes() []byte

GetSignBytes ...

func (CreateOrderMsg) GetSigners

func (msg CreateOrderMsg) GetSigners() []sdk.Address

func (CreateOrderMsg) String

func (msg CreateOrderMsg) String() string

func (CreateOrderMsg) Type

func (msg CreateOrderMsg) Type() string

nolint ...

func (CreateOrderMsg) ValidateBasic

func (msg CreateOrderMsg) ValidateBasic() sdk.Error

ValidateBasic ...

type Keeper

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

Keeper manages shipping orders

func NewKeeper

func NewKeeper(storeKey sdk.StoreKey, cdc *wire.Codec, coinKeeper coin.Keeper) Keeper

NewKeeper constructs a new keeper

func (Keeper) CancelOrder

func (k Keeper) CancelOrder(ctx sdk.Context, msg CancelOrderMsg) (sdk.Tags, sdk.Error)

CancelOrder vakudates the message and set the status of the target order to Cancelled

Only the issuer can cancel the order

func (Keeper) CompleteOrder

func (k Keeper) CompleteOrder(ctx sdk.Context, msg CompleteOrderMsg) (sdk.Tags, sdk.Error)

CompleteOrder vakudates the message and set the status of the target order to Completed

Only the receiver can complete the order, and only when the order is confirmed

func (Keeper) ConfirmOrder

func (k Keeper) ConfirmOrder(ctx sdk.Context, msg ConfirmOrderMsg) (sdk.Tags, sdk.Error)

ConfirmOrder validate the message and set the status of the target order to Completed

Only the carrier can confirm the order, and only when the order is pending

func (Keeper) CreateOrder

func (k Keeper) CreateOrder(ctx sdk.Context, msg CreateOrderMsg) (sdk.Tags, sdk.Error)

CreateOrder validates and creates a new order

type Order

type Order struct {
	ID                string             `json:"id"`                 // ID of the order, provided by the client
	TransportedAssets []TransportedAsset `json:"transported_assets"` // The assets to be transported
	Issuer            sdk.Address        `json:"issuer"`             // The issuer of the order, must also be the owner of the asset (coin)
	Carrier           sdk.Address        `json:"carrier"`            // The carrier
	Receiver          sdk.Address        `json:"receiver"`           // The receiver, often a buyer
	Status            OrderStatus        `json:"status"`             // The status of the order
}

Order is a shipping order

type OrderStatus

type OrderStatus int

OrderStatus represents the order's status

const (
	OrderStatusPending   OrderStatus = iota // Order has been created
	OrderStatusConfirmed                    // The carrier received the asset from the issuer
	OrderStatusCompleted                    // The receiver received the asset from the carrier
	OrderStatusCancelled                    // Order is cancelled
)

Valid status of an order

type TransportedAsset

type TransportedAsset struct {
	ID       string `json:"id"`       // ID of the asset (coin) to be transported
	Quantity int64  `json:"quantity"` // Quanity to be transported
}

TransportedAsset contains the id of the asset and the quantity to be transported

Directories

Path Synopsis
client

Jump to

Keyboard shortcuts

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