Documentation ¶
Index ¶
- Constants
- Variables
- func CapacityReservationPaymentInfoCreate(ctx context.Context, db *mongo.Database, ...) error
- func CapacityReservationPaymentInfoUpdate(ctx context.Context, db *mongo.Database, ...) error
- func CustomerAddressCreate(ctx context.Context, db *mongo.Database, cAddress CustomerAddress) error
- func Setup(ctx context.Context, db *mongo.Database) error
- type CapacityReservationInfo
- type CapacityReservationPaymentInformation
- func CapacityReservationPaymentInfoGet(ctx context.Context, db *mongo.Database, id schema.ID) (CapacityReservationPaymentInformation, error)
- func GetAllActiveCapacityReservationPaymentInfos(ctx context.Context, db *mongo.Database) ([]CapacityReservationPaymentInformation, error)
- func GetAllExpiredCapacityReservationPaymentInfos(ctx context.Context, db *mongo.Database) ([]CapacityReservationPaymentInformation, error)
- type CustomerAddress
- type CustomerCapacityEscrowInformation
- type CustomerEscrowInformation
- type EscrowDetail
- type ReservationPaymentInformation
Constants ¶
const ( // EscrowCollection db collection name EscrowCollection = "escrow" // CapacityEscrowCollection db collection for escrow info related to capacity info CapacityEscrowCollection = "capacity-escrow" )
const (
// AddressCollection db collection name
AddressCollection = "addresses"
)
Variables ¶
var ( // ErrAddressExists error for non existing doc ErrAddressExists = errors.New("address(s) for farmer customer already exists") // ErrAddressNotFound error for not found ErrAddressNotFound = errors.New("address information not found") )
var ( // ErrEscrowExists is returned when trying to save escrow information for a // reservation that already has escrow information ErrEscrowExists = errors.New("escrow(s) for reservation already exists") // ErrEscrowNotFound is returned if escrow information is not found ErrEscrowNotFound = errors.New("escrow information not found") )
Functions ¶
func CapacityReservationPaymentInfoCreate ¶
func CapacityReservationPaymentInfoCreate(ctx context.Context, db *mongo.Database, reservationPaymentInfo CapacityReservationPaymentInformation) error
CapacityReservationPaymentInfoCreate creates the reservation payment information
func CapacityReservationPaymentInfoUpdate ¶
func CapacityReservationPaymentInfoUpdate(ctx context.Context, db *mongo.Database, update CapacityReservationPaymentInformation) error
CapacityReservationPaymentInfoUpdate update reservation payment info
func CustomerAddressCreate ¶
CustomerAddressCreate creates the reservation payment information
Types ¶
type CapacityReservationInfo ¶
type CapacityReservationInfo struct { // ID of the pool ID schema.ID `bson:"id"` // CUs to add CUs uint64 `bson:"cus"` // SUs to add SUs uint64 `bson:"sus"` }
CapacityReservationInfo is information to manipulate a capacity pool once the escrow is fulfilled
type CapacityReservationPaymentInformation ¶
type CapacityReservationPaymentInformation struct { ReservationID schema.ID `json:"id" bson:"_id"` FarmerID schema.ID `json:"farmer_id" bson:"farmer_id"` Address string `json:"address" bson:"address"` Expiration schema.Date `json:"expiration" bson:"expiration"` Asset stellar.Asset `json:"asset" bson:"asset"` Amount xdr.Int64 `json:"amount" bson:"amount"` // Paid indicates the capacity reservation escrows have been fully funded, // resulting in the new funds being allocated into the pool (creating // the pool in case it did not exist yet) Paid bool `json:"paid" bson:"paid"` // Released means we tried to pay the farmer Released bool `json:"released" bson:"released"` // Canceled means the escrow got canceled, i.e. client refunded. This can // only happen in case the reservation expires. Canceled bool `json:"canceled" bson:"canceled"` // Cause of cancellation Cause string `json:"cause" bson:"cause"` }
CapacityReservationPaymentInformation stores the reservation payment information
func CapacityReservationPaymentInfoGet ¶
func CapacityReservationPaymentInfoGet(ctx context.Context, db *mongo.Database, id schema.ID) (CapacityReservationPaymentInformation, error)
CapacityReservationPaymentInfoGet a single reservation escrow info using its id
func GetAllActiveCapacityReservationPaymentInfos ¶
func GetAllActiveCapacityReservationPaymentInfos(ctx context.Context, db *mongo.Database) ([]CapacityReservationPaymentInformation, error)
GetAllActiveCapacityReservationPaymentInfos get all active reservation payment information
func GetAllExpiredCapacityReservationPaymentInfos ¶
func GetAllExpiredCapacityReservationPaymentInfos(ctx context.Context, db *mongo.Database) ([]CapacityReservationPaymentInformation, error)
GetAllExpiredCapacityReservationPaymentInfos get all expired reservation payment information
type CustomerAddress ¶
type CustomerAddress struct { CustomerTID int64 `bson:"customer_tid" json:"customer_tid"` Address string `bson:"address" json:"address"` Secret string `bson:"secret" json:"secret"` }
CustomerAddress holds the customer escrow address and key
func CustomerAddressByAddress ¶
func CustomerAddressByAddress(ctx context.Context, db *mongo.Database, address string) (CustomerAddress, error)
CustomerAddressByAddress gets one address using the address
func CustomerAddressGet ¶
func CustomerAddressGet(ctx context.Context, db *mongo.Database, customerTID int64) (CustomerAddress, error)
CustomerAddressGet one address bycustomerTID
type CustomerCapacityEscrowInformation ¶
type CustomerCapacityEscrowInformation struct { Address string `json:"address"` Asset stellar.Asset `json:"asset"` Amount xdr.Int64 `json:"amount"` }
CustomerCapacityEscrowInformation is the escrow information which will get exposed to the customer once he creates a reservation for capacity
type CustomerEscrowInformation ¶
type CustomerEscrowInformation struct { Address string `json:"address"` Asset stellar.Asset `json:"asset"` Details []EscrowDetail `json:"details"` }
CustomerEscrowInformation is the escrow information which will get exposed to the customer once he creates a reservation
type EscrowDetail ¶
type EscrowDetail struct { FarmerID schema.ID `bson:"farmer_id" json:"farmer_id"` TotalAmount xdr.Int64 `bson:"total_amount" json:"total_amount"` }
EscrowDetail hold the details of an escrow address
type ReservationPaymentInformation ¶
type ReservationPaymentInformation struct { ReservationID schema.ID `bson:"_id"` Address string `bson:"address"` Expiration schema.Date `bson:"expiration"` Asset stellar.Asset `bson:"asset"` Infos []EscrowDetail `bson:"infos"` // Paid indicates the reservation escrows have been fully funded, and // the reservation has been moved from the "PAY" state to the "DEPLOY" // state Paid bool `bson:"paid"` // Released indicates the reservation has been fully deployed, and // that an attempt was made to pay the farmers. If this flag is set, it is // still possible that there are funds on an escrow related to this transaction // either because someone funded it after the reservation was already // deployed , because there was an error paying the farmers // or because there was an error refunding any overpaid amount. Released bool `bson:"released"` // Canceled indicates that the reservation was canceled, either by the // user, or because a workload deployment failed, which resulted in the // entire reservation being canceled. As a result, an attempt was made // to refund the client. It is possible for this to have failed. Canceled bool `bson:"canceled"` }
ReservationPaymentInformation stores the reservation payment information
func GetAllExpiredReservationPaymentInfos ¶
func GetAllExpiredReservationPaymentInfos(ctx context.Context, db *mongo.Database) ([]ReservationPaymentInformation, error)
GetAllExpiredReservationPaymentInfos get all expired reservation payment information