Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Escrow ¶
type Escrow interface { Run(ctx context.Context) error RegisterReservation(reservation workloads.Reservation) (types.CustomerEscrowInformation, error) ReservationDeployed(reservationID schema.ID) ReservationCanceled(reservationID schema.ID) }
Escrow are responsible for the payment flow of a reservation
type FarmAPI ¶
type FarmAPI interface { // GetByID get a farm from the database using its ID GetByID(ctx context.Context, db *mongo.Database, id int64) (directorytypes.Farm, error) }
FarmAPI operations on farm database
type Free ¶
type Free struct {
// contains filtered or unexported fields
}
Free implements the Escrow interface in a way that makes all reservation free
func (*Free) RegisterReservation ¶
func (e *Free) RegisterReservation(reservation workloads.Reservation) (detail types.CustomerEscrowInformation, err error)
RegisterReservation implements the escrow interface
func (*Free) ReservationCanceled ¶
ReservationCanceled implements the escrow interface
func (*Free) ReservationDeployed ¶
ReservationDeployed implements the escrow interface
type NodeAPI ¶
type NodeAPI interface { // Get a node from the database using its ID Get(ctx context.Context, db *mongo.Database, id string, proofs bool) (directorytypes.Node, error) }
NodeAPI operations on node database
type Stellar ¶
type Stellar struct {
// contains filtered or unexported fields
}
Stellar service manages a dedicate wallet for payments for reservations.
func NewStellar ¶
NewStellar creates a new escrow object and fetches all addresses for the escrow wallet
func (*Stellar) RegisterReservation ¶
func (e *Stellar) RegisterReservation(reservation workloads.Reservation) (types.CustomerEscrowInformation, error)
RegisterReservation registers a workload reservation
func (*Stellar) ReservationCanceled ¶
ReservationCanceled informs the escrow of a canceled reservation so it can refund the user
func (*Stellar) ReservationDeployed ¶
ReservationDeployed informs the escrow that a reservation has been successfully deployed, so the escrow can release the funds to the farmer (and refund any excess)