Documentation
¶
Index ¶
- Variables
- func GetHeldRate(joinTime time.Time, requestTime time.Time) (heldRate float64)
- type Client
- type DB
- type Endpoint
- func (endpoint *Endpoint) GetAllPayments(ctx context.Context, satelliteID storj.NodeID) (_ []Payment, err error)
- func (endpoint *Endpoint) GetAllPaystubs(ctx context.Context, satelliteID storj.NodeID) (_ []PayStub, err error)
- func (endpoint *Endpoint) GetPayment(ctx context.Context, satelliteID storj.NodeID, period string) (_ *Payment, err error)
- func (endpoint *Endpoint) GetPaystub(ctx context.Context, satelliteID storj.NodeID, period string) (_ *PayStub, err error)
- type HeldAmountHistory
- type HeldForPeriod
- type PayStub
- type Payment
- type SatelliteHeldHistory
- type SatellitePayoutForPeriod
- type Service
- func (service *Service) AllHeldbackHistory(ctx context.Context) (result []SatelliteHeldHistory, err error)
- func (service *Service) AllPayStubsMonthly(ctx context.Context, period string) (payStubs []PayStub, err error)
- func (service *Service) AllPayStubsPeriod(ctx context.Context, periodStart, periodEnd string) (payStubs []PayStub, err error)
- func (service *Service) AllPeriods(ctx context.Context) (_ []string, err error)
- func (service *Service) AllSatellitesPayoutPeriod(ctx context.Context, period string) (result []SatellitePayoutForPeriod, err error)
- func (service *Service) HeldAmountHistory(ctx context.Context) (_ []HeldAmountHistory, err error)
- func (service *Service) SatellitePayStubMonthly(ctx context.Context, satelliteID storj.NodeID, period string) (payStub *PayStub, err error)
- func (service *Service) SatellitePayStubPeriod(ctx context.Context, satelliteID storj.NodeID, periodStart, periodEnd string) (payStubs []PayStub, err error)
- func (service *Service) SatellitePeriods(ctx context.Context, satelliteID storj.NodeID) (_ []string, err error)
Constants ¶
This section is empty.
Variables ¶
var (
// ErrPayoutService defines payout service error.
ErrPayoutService = errs.Class("payouts service")
// ErrBadPeriod defines that period has wrong format.
ErrBadPeriod = errs.Class("wrong period format")
)
var ErrNoPayStubForPeriod = errs.Class("no payStub for period")
ErrNoPayStubForPeriod represents errors from the payouts database.
Functions ¶
func GetHeldRate ¶
func GetHeldRate(joinTime time.Time, requestTime time.Time) (heldRate float64)
GetHeldRate returns held rate for specific period from join date of node.
Types ¶
type Client ¶
type Client struct {
pb.DRPCHeldAmountClient
// contains filtered or unexported fields
}
Client encapsulates HeldAmountClient with underlying connection.
architecture: Client
type DB ¶
type DB interface {
// StorePayStub inserts or updates paystub into the DB.
StorePayStub(ctx context.Context, paystub PayStub) error
// GetPayStub retrieves paystub for specific satellite and period.
GetPayStub(ctx context.Context, satelliteID storj.NodeID, period string) (*PayStub, error)
// AllPayStubs retrieves paystubs from all satellites in specific period from DB.
AllPayStubs(ctx context.Context, period string) ([]PayStub, error)
// SatellitesHeldbackHistory retrieves heldback history for specific satellite from DB.
SatellitesHeldbackHistory(ctx context.Context, satelliteID storj.NodeID) ([]HeldForPeriod, error)
// SatellitesDisposedHistory returns all disposed amount for specific satellite from DB.
SatellitesDisposedHistory(ctx context.Context, satelliteID storj.NodeID) (int64, error)
// SatellitePeriods retrieves all periods for concrete satellite in which we have some payouts data.
SatellitePeriods(ctx context.Context, satelliteID storj.NodeID) ([]string, error)
// AllPeriods retrieves all periods in which we have some payouts data.
AllPeriods(ctx context.Context) ([]string, error)
// StorePayment inserts or updates payment into the DB
StorePayment(ctx context.Context, payment Payment) error
// GetReceipt retrieves receipt for specific satellite and period.
GetReceipt(ctx context.Context, satelliteID storj.NodeID, period string) (string, error)
// GetTotalEarned returns total earned amount of node from all paystubs.
GetTotalEarned(ctx context.Context) (_ int64, err error)
// GetEarnedAtSatellite returns total earned value for node from specific satellite.
GetEarnedAtSatellite(ctx context.Context, id storj.NodeID) (int64, error)
// GetPayingSatellitesIDs returns list of satellite ID's that ever paid to storagenode.
GetPayingSatellitesIDs(ctx context.Context) ([]storj.NodeID, error)
// GetSatelliteSummary returns satellite all time paid and held amounts.
GetSatelliteSummary(ctx context.Context, satelliteID storj.NodeID) (paid, held int64, err error)
// GetSatellitePeriodSummary returns satellite paid and held amounts for specific period.
GetSatellitePeriodSummary(ctx context.Context, satelliteID storj.NodeID, period string) (paid, held int64, err error)
// GetUndistributed returns total undistributed amount.
GetUndistributed(ctx context.Context) (int64, error)
// GetSatellitePaystubs returns summed paystubs for specific satellite.
GetSatellitePaystubs(ctx context.Context, satelliteID storj.NodeID) (*PayStub, error)
// GetPaystubs returns summed all paystubs.
GetPaystubs(ctx context.Context) (*PayStub, error)
// GetSatellitesPeriodPaystubs returns summed all satellites paystubs for specific period.
GetPeriodPaystubs(ctx context.Context, period string) (*PayStub, error)
// GetSatellitePeriodPaystubs returns summed satellite paystubs for specific period.
GetSatellitePeriodPaystubs(ctx context.Context, period string, satelliteID storj.NodeID) (*PayStub, error)
// HeldAmountHistory retrieves held amount history for all satellites.
HeldAmountHistory(ctx context.Context) ([]HeldAmountHistory, error)
}
DB works with payouts database.
architecture: Database
type Endpoint ¶
type Endpoint struct {
// contains filtered or unexported fields
}
Endpoint retrieves info from satellites using an rpc client.
architecture: Endpoint
func NewEndpoint ¶
func NewEndpoint(log *zap.Logger, dialer rpc.Dialer, trust *trust.Pool) *Endpoint
NewEndpoint creates new instance of endpoint.
func (*Endpoint) GetAllPayments ¶
func (endpoint *Endpoint) GetAllPayments(ctx context.Context, satelliteID storj.NodeID) (_ []Payment, err error)
GetAllPayments retrieves all payments for particular satellite.
func (*Endpoint) GetAllPaystubs ¶
func (endpoint *Endpoint) GetAllPaystubs(ctx context.Context, satelliteID storj.NodeID) (_ []PayStub, err error)
GetAllPaystubs retrieves all paystubs for particular satellite.
func (*Endpoint) GetPayment ¶
func (endpoint *Endpoint) GetPayment(ctx context.Context, satelliteID storj.NodeID, period string) (_ *Payment, err error)
GetPayment retrieves payment data from particular satellite using grpc.
func (*Endpoint) GetPaystub ¶
func (endpoint *Endpoint) GetPaystub(ctx context.Context, satelliteID storj.NodeID, period string) (_ *PayStub, err error)
GetPaystub retrieves held amount for particular satellite from satellite using RPC.
type HeldAmountHistory ¶ added in v1.32.1
type HeldAmountHistory struct {
SatelliteID storj.NodeID `json:"satelliteId"`
HeldAmounts []HeldForPeriod `json:"heldAmounts"`
}
HeldAmountHistory contains held amount history for satellite.
type HeldForPeriod ¶ added in v1.32.1
type HeldForPeriod struct {
Period string `json:"period"`
Amount int64 `json:"amount"`
}
HeldForPeriod is node's held amount for period.
type PayStub ¶
type PayStub struct {
SatelliteID storj.NodeID `json:"satelliteId"`
Period string `json:"period"`
Created time.Time `json:"created"`
Codes string `json:"codes"`
UsageAtRest float64 `json:"usageAtRest"`
UsageGet int64 `json:"usageGet"`
UsagePut int64 `json:"usagePut"`
UsageGetRepair int64 `json:"usageGetRepair"`
UsagePutRepair int64 `json:"usagePutRepair"`
UsageGetAudit int64 `json:"usageGetAudit"`
CompAtRest int64 `json:"compAtRest"`
CompGet int64 `json:"compGet"`
CompPut int64 `json:"compPut"`
CompGetRepair int64 `json:"compGetRepair"`
CompPutRepair int64 `json:"compPutRepair"`
CompGetAudit int64 `json:"compGetAudit"`
SurgePercent int64 `json:"surgePercent"`
Held int64 `json:"held"`
Owed int64 `json:"owed"`
Disposed int64 `json:"disposed"`
Paid int64 `json:"paid"`
Distributed int64 `json:"distributed"`
}
PayStub is node payouts data for satellite by specific period.
func (*PayStub) GetEarnedWithSurge ¶
func (paystub *PayStub) GetEarnedWithSurge() (earned int64, surge int64)
GetEarnedWithSurge returns paystub's total earned and surge.
func (*PayStub) UsageAtRestTbM ¶
func (paystub *PayStub) UsageAtRestTbM()
UsageAtRestTbM converts paystub's usage_at_rest from tbh to tbm.
type Payment ¶
type Payment struct {
ID int64 `json:"id"`
Created time.Time `json:"created"`
SatelliteID storj.NodeID `json:"satelliteId"`
Period string `json:"period"`
Amount int64 `json:"amount"`
Receipt string `json:"receipt"`
Notes string `json:"notes"`
}
Payment is node payment data for specific period.
type SatelliteHeldHistory ¶
type SatelliteHeldHistory struct {
SatelliteID storj.NodeID `json:"satelliteID"`
SatelliteName string `json:"satelliteName"`
HoldForFirstPeriod int64 `json:"holdForFirstPeriod"`
HoldForSecondPeriod int64 `json:"holdForSecondPeriod"`
HoldForThirdPeriod int64 `json:"holdForThirdPeriod"`
TotalHeld int64 `json:"totalHeld"`
TotalDisposed int64 `json:"totalDisposed"`
JoinedAt time.Time `json:"joinedAt"`
}
SatelliteHeldHistory amount of held for specific satellite for all time since join.
type SatellitePayoutForPeriod ¶
type SatellitePayoutForPeriod struct {
SatelliteID string `json:"satelliteID"`
SatelliteURL string `json:"satelliteURL"`
Age int64 `json:"age"`
Earned int64 `json:"earned"`
Surge int64 `json:"surge"`
SurgePercent int64 `json:"surgePercent"`
Held int64 `json:"held"`
HeldPercent float64 `json:"heldPercent"`
AfterHeld int64 `json:"afterHeld"`
Disposed int64 `json:"disposed"`
Paid int64 `json:"paid"`
Receipt string `json:"receipt"`
IsExitComplete bool `json:"isExitComplete"`
Distributed int64 `json:"distributed"`
}
SatellitePayoutForPeriod contains payouts information for specific period for specific satellite.
func PaystubToSatellitePayoutForPeriod ¶ added in v1.96.4
func PaystubToSatellitePayoutForPeriod(paystub PayStub, joinedAt time.Time, receipt string, satelliteURL string, isExitComplete bool) (payoutForPeriod SatellitePayoutForPeriod, err error)
PaystubToSatellitePayoutForPeriod converts PayStub to SatellitePayoutForPeriod.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service retrieves info from satellites using an rpc client.
architecture: Service
func NewService ¶
func NewService(log *zap.Logger, db DB, reputationDB reputation.DB, satelliteDB satellites.DB, trust *trust.Pool) (_ *Service, err error)
NewService creates new instance of service.
func (*Service) AllHeldbackHistory ¶
func (service *Service) AllHeldbackHistory(ctx context.Context) (result []SatelliteHeldHistory, err error)
AllHeldbackHistory retrieves heldback history for all satellites from storagenode database.
func (*Service) AllPayStubsMonthly ¶
func (service *Service) AllPayStubsMonthly(ctx context.Context, period string) (payStubs []PayStub, err error)
AllPayStubsMonthly retrieves held amount for all satellites per selected period from storagenode database.
func (*Service) AllPayStubsPeriod ¶
func (service *Service) AllPayStubsPeriod(ctx context.Context, periodStart, periodEnd string) (payStubs []PayStub, err error)
AllPayStubsPeriod retrieves held amount for all satellites for selected range of months from storagenode database.
func (*Service) AllPeriods ¶
func (service *Service) AllPeriods(ctx context.Context) (_ []string, err error)
AllPeriods retrieves all periods in which we have some payouts data.
func (*Service) AllSatellitesPayoutPeriod ¶
func (service *Service) AllSatellitesPayoutPeriod(ctx context.Context, period string) (result []SatellitePayoutForPeriod, err error)
AllSatellitesPayoutPeriod retrieves paystub and payment receipt for specific month from all satellites.
func (*Service) HeldAmountHistory ¶ added in v1.32.1
func (service *Service) HeldAmountHistory(ctx context.Context) (_ []HeldAmountHistory, err error)
HeldAmountHistory retrieves held amount history for all satellites.
func (*Service) SatellitePayStubMonthly ¶
func (service *Service) SatellitePayStubMonthly(ctx context.Context, satelliteID storj.NodeID, period string) (payStub *PayStub, err error)
SatellitePayStubMonthly retrieves held amount for particular satellite for selected month from storagenode database.
func (*Service) SatellitePayStubPeriod ¶
func (service *Service) SatellitePayStubPeriod(ctx context.Context, satelliteID storj.NodeID, periodStart, periodEnd string) (payStubs []PayStub, err error)
SatellitePayStubPeriod retrieves held amount for all satellites for selected months from storagenode database.
func (*Service) SatellitePeriods ¶
func (service *Service) SatellitePeriods(ctx context.Context, satelliteID storj.NodeID) (_ []string, err error)
SatellitePeriods retrieves all periods for concrete satellite in which we have some payouts data.