Documentation ¶
Index ¶
Constants ¶
const ( // PaymentStatusConfirmed indicates that payment has required number of confirmations. PaymentStatusConfirmed = "confirmed" // PaymentStatusPending indicates that payment has not meet confirmation requirements. PaymentStatusPending = "pending" )
Variables ¶
var ( // ClientErr is general purpose storjscan client error class. ClientErr = errs.Class("storjscan client") ClientErrUnauthorized = errs.Class("storjscan client unauthorized") )
var ChoreErr = errs.Class("storjscan chore")
ChoreErr is storjscan chore err class.
var ErrNoPayments = errs.New("no payments in the database")
ErrNoPayments represents err when there is no payments in the DB.
var ( // Error defines storjscan service error. Error = errs.Class("storjscan service") )
Functions ¶
This section is empty.
Types ¶
type CachedPayment ¶ added in v1.58.1
type CachedPayment struct { From blockchain.Address To blockchain.Address TokenValue monetary.Amount Status PaymentStatus BlockHash blockchain.Hash BlockNumber int64 Transaction blockchain.Hash LogIndex int Timestamp time.Time }
CachedPayment holds cached data of storjscan payment.
type Chore ¶ added in v1.58.1
Chore periodically queries for new payments from storjscan.
architecture: Chore
func NewChore ¶ added in v1.58.1
func NewChore(log *zap.Logger, client *Client, paymentsDB PaymentsDB, confirmations int, interval time.Duration) *Chore
NewChore creates new chore.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is storjscan HTTP API client.
func (*Client) ClaimNewEthAddress ¶ added in v1.57.1
ClaimNewEthAddress claims a new ethereum wallet address for the given user.
type Config ¶ added in v1.57.1
type Config struct { Endpoint string `help:"storjscan API endpoint"` Auth struct { Identifier string `help:"basic auth identifier"` Secret string `help:"basic auth secret"` } Confirmations int `help:"required number of following blocks in the chain to accept payment as confirmed" default:"12"` }
Config stores needed information for storjscan service initialization.
type DB ¶
type DB interface { // Wallets is getter for wallets db. Wallets() WalletsDB }
DB is storjscan DB interface.
architecture: Database
type Header ¶
type Header struct { Hash blockchain.Hash Number int64 Timestamp time.Time }
Header holds ethereum blockchain block header data.
type LatestPayments ¶
LatestPayments contains latest payments and latest chain block header.
type Payment ¶
type Payment struct { From blockchain.Address To blockchain.Address TokenValue *big.Int USDValue float64 BlockHash blockchain.Hash BlockNumber int64 Transaction blockchain.Hash LogIndex int Timestamp time.Time }
Payment holds storjscan payment data.
type PaymentStatus ¶ added in v1.58.1
type PaymentStatus string
PaymentStatus indicates payment status.
type PaymentsDB ¶ added in v1.58.1
type PaymentsDB interface { // InsertBatch inserts list of payments into DB. InsertBatch(ctx context.Context, payments []CachedPayment) error // List returns list of all storjscan payments order by block number and log index desc mainly for testing. List(ctx context.Context) ([]CachedPayment, error) // ListWallet returns list of storjscan payments order by block number and log index desc. ListWallet(ctx context.Context, wallet blockchain.Address, limit int, offset int64) ([]CachedPayment, error) // LastBlock returns the highest block known to DB for specified payment status. LastBlock(ctx context.Context, status PaymentStatus) (int64, error) // DeletePending removes all pending transactions from the DB. DeletePending(ctx context.Context) error }
PaymentsDB is storjscan payments DB interface.
architecture: Database
type Service ¶ added in v1.57.1
type Service struct {
// contains filtered or unexported fields
}
Service is an implementation for payment service via Stripe and Coinpayments.
architecture: Service
func NewService ¶ added in v1.57.1
NewService creates a Service instance.
type WalletsDB ¶
type WalletsDB interface { // Add adds a new storjscan wallet to the DB and associates it with a user. Add(ctx context.Context, userID uuid.UUID, walletAddress blockchain.Address) error // Get returns the wallet address associated with the given user. Get(ctx context.Context, userID uuid.UUID) (blockchain.Address, error) // GetAllUsers returns all user IDs that have associated storjscan wallets. GetAllUsers(ctx context.Context) (_ []uuid.UUID, err error) }
WalletsDB is an interface which defines functionality of DB which stores user storjscan wallets.
architecture: Database