Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrAccountNotSetup = errs.Class("payment account is not set up")
ErrAccountNotSetup is an error type which indicates that payment account is not created.
Functions ¶
This section is empty.
Types ¶
type Accounts ¶ added in v0.24.0
type Accounts interface { // Setup creates a payment account for the user. // If account is already set up it will return nil. Setup(ctx context.Context, userID uuid.UUID, email string) error // Balance returns an integer amount in cents that represents the current balance of payment account. Balance(ctx context.Context, userID uuid.UUID) (int64, error) // ProjectCharges returns how much money current user will be charged for each project. ProjectCharges(ctx context.Context, userID uuid.UUID) ([]ProjectCharge, error) // CreditCards exposes all needed functionality to manage account credit cards. CreditCards() CreditCards // StorjTokens exposes all storj token related functionality. StorjTokens() StorjTokens // Invoices exposes all needed functionality to manage account invoices. Invoices() Invoices }
Accounts exposes all needed functionality to manage payment accounts.
type CreditCard ¶ added in v0.24.0
type CreditCard struct { ID string `json:"id"` ExpMonth int `json:"expMonth"` ExpYear int `json:"expYear"` Brand string `json:"brand"` Last4 string `json:"last4"` IsDefault bool `json:"isDefault"` }
CreditCard holds all public information about credit card.
type CreditCards ¶ added in v0.24.0
type CreditCards interface { // List returns a list of credit cards for a given payment account. List(ctx context.Context, userID uuid.UUID) ([]CreditCard, error) // Add is used to save new credit card and attach it to payment account. Add(ctx context.Context, userID uuid.UUID, cardToken string) error // Remove is used to detach a credit card from payment account. Remove(ctx context.Context, userID uuid.UUID, cardID string) error // MakeDefault makes a credit card default payment method. // this credit card should be attached to account before make it default. MakeDefault(ctx context.Context, userID uuid.UUID, cardID string) error }
CreditCards exposes all needed functionality to manage account credit cards.
type Invoice ¶
type Invoice struct { ID string `json:"id"` Description string `json:"description"` Amount int64 `json:"amount"` Status string `json:"status"` Link string `json:"link"` Start time.Time `json:"start"` End time.Time `json:"end"` }
Invoice holds all public information about invoice.
type Invoices ¶ added in v0.25.0
type Invoices interface { // List returns a list of invoices for a given payment account. List(ctx context.Context, userID uuid.UUID) ([]Invoice, error) }
Invoices exposes all needed functionality to manage account invoices.
type ProjectCharge ¶ added in v0.26.0
type ProjectCharge struct { ProjectID uuid.UUID `json:"projectId"` // StorageGbHrs shows how much cents we should pay for storing GB*Hrs. StorageGbHrs int64 // Egress shows how many cents we should pay for Egress. Egress int64 // ObjectCount shows how many cents we should pay for objects count. ObjectCount int64 }
ProjectCharge shows how much money current project will charge in the end of the month.
type StorjTokens ¶ added in v0.24.0
type StorjTokens interface { // Deposit creates deposit transaction for specified amount. Deposit(ctx context.Context, userID uuid.UUID, amount *TokenAmount) (*Transaction, error) // ListTransactionInfos returns all transaction associated with user. ListTransactionInfos(ctx context.Context, userID uuid.UUID) ([]TransactionInfo, error) }
StorjTokens defines all payments STORJ token related functionality.
type TokenAmount ¶ added in v0.26.0
type TokenAmount struct {
// contains filtered or unexported fields
}
TokenAmount is a wrapper type for STORJ token amount. Uses big.Float as inner representation. Precision is set to 32 so it can properly handle 8 digits after point which is STORJ token decimal set.
func NewTokenAmount ¶ added in v0.26.0
func NewTokenAmount() *TokenAmount
NewTokenAmount creates new zeroed TokenAmount with fixed precision.
func ParseTokenAmount ¶ added in v0.26.0
func ParseTokenAmount(s string) (*TokenAmount, error)
ParseTokenAmount parses string representing floating point and returns TokenAmount.
func TokenAmountFromBigFloat ¶ added in v0.26.0
func TokenAmountFromBigFloat(f *big.Float) *TokenAmount
TokenAmountFromBigFloat converts big.Float to TokenAmount.
func (*TokenAmount) BigFloat ¶ added in v0.26.0
func (amount *TokenAmount) BigFloat() *big.Float
BigFloat returns inner representation of TokenAmount.
func (*TokenAmount) String ¶ added in v0.26.0
func (amount *TokenAmount) String() string
String representation of TokenValue.
type Transaction ¶ added in v0.24.0
type Transaction struct { ID TransactionID AccountID uuid.UUID Amount TokenAmount Received TokenAmount Address string Status TransactionStatus Timeout time.Duration CreatedAt time.Time }
Transaction defines deposit transaction which accepts user funds on a specific wallet address.
type TransactionID ¶ added in v0.24.0
type TransactionID []byte
TransactionID is a transaction ID type.
func (TransactionID) String ¶ added in v0.26.0
func (id TransactionID) String() string
String returns string representation of transaction id.
type TransactionInfo ¶ added in v0.26.0
type TransactionInfo struct { ID TransactionID Amount TokenAmount Received TokenAmount Address string Status TransactionStatus Link string ExpiresAt time.Time CreatedAt time.Time }
TransactionInfo holds transaction data with additional information such as links and expiration time.
type TransactionStatus ¶ added in v0.24.0
type TransactionStatus string
TransactionStatus defines allowed statuses for deposit transactions.
const ( // TransactionStatusPaid is a transaction which successfully received required funds. TransactionStatusPaid TransactionStatus = "paid" // TransactionStatusPending is a transaction which accepts funds. TransactionStatusPending TransactionStatus = "pending" // TransactionStatusCancelled is a transaction that is cancelled and no longer accepting new funds. TransactionStatusCancelled TransactionStatus = "cancelled" )
func (TransactionStatus) String ¶ added in v0.26.0
func (status TransactionStatus) String() string
String returns string representation of transaction status.