Documentation ¶
Index ¶
- Constants
- func GrpcMonitoringInterceptor() grpc.StreamServerInterceptor
- func GrpcPaymentValidationInterceptor(defaultPaymentHandler PaymentHandler, paymentHandler ...PaymentHandler) grpc.StreamServerInterceptor
- func GrpcRateLimitInterceptor() grpc.StreamServerInterceptor
- func NewGrpcHandler(serviceMetadata *blockchain.ServiceMetadata) grpc.StreamHandler
- func NoOpInterceptor(srv interface{}, ss grpc.ServerStream, info *grpc.StreamServerInfo, ...) error
- type GrpcError
- func GetBigInt(md metadata.MD, key string) (value *big.Int, err *GrpcError)
- func GetBytes(md metadata.MD, key string) (result []byte, err *GrpcError)
- func GetBytesFromHex(md metadata.MD, key string) (value []byte, err *GrpcError)
- func GetSingleValue(md metadata.MD, key string) (value string, err *GrpcError)
- func NewGrpcError(code codes.Code, message string) *GrpcError
- func NewGrpcErrorf(code codes.Code, format string, args ...interface{}) *GrpcError
- type GrpcStreamContext
- type Payment
- type PaymentHandler
Constants ¶
const ( // IncorrectNonce is returned to client when payment recieved contains // incorrect nonce value. Client may use PaymentChannelStateService to get // latest channel state and correct nonce value. IncorrectNonce codes.Code = 1000 )
Custom gRPC codes to return to the client
const ( // PaymentTypeHeader is a type of payment used to pay for a RPC call. // Supported types are: "escrow". // Note: "job" Payment type is deprecated PaymentTypeHeader = "snet-payment-type" )
Variables ¶
This section is empty.
Functions ¶
func GrpcMonitoringInterceptor ¶ added in v0.1.5
func GrpcMonitoringInterceptor() grpc.StreamServerInterceptor
func GrpcPaymentValidationInterceptor ¶ added in v0.1.4
func GrpcPaymentValidationInterceptor(defaultPaymentHandler PaymentHandler, paymentHandler ...PaymentHandler) grpc.StreamServerInterceptor
GrpcStreamInterceptor returns gRPC interceptor to validate payment. If blockchain is disabled then noOpInterceptor is returned.
func GrpcRateLimitInterceptor ¶ added in v0.1.4
func GrpcRateLimitInterceptor() grpc.StreamServerInterceptor
func NewGrpcHandler ¶
func NewGrpcHandler(serviceMetadata *blockchain.ServiceMetadata) grpc.StreamHandler
func NoOpInterceptor ¶ added in v0.1.2
func NoOpInterceptor(srv interface{}, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error
NoOpInterceptor is a gRPC interceptor which doesn't do payment checking.
Types ¶
type GrpcError ¶ added in v0.1.3
GrpcError is an error which will be returned by interceptor via gRPC protocol. Part of information will be returned as header metadata.
func GetBytes ¶ added in v0.1.2
GetBytes gets bytes array value from gRPC metadata for key with '-bin' suffix, internally this data is encoded as base64
func GetBytesFromHex ¶ added in v0.1.2
GetBytesFromHex gets bytes array value from gRPC metadata, bytes array is encoded as hex string
func GetSingleValue ¶ added in v0.1.2
GetSingleValue gets string value from gRPC metadata
func NewGrpcError ¶ added in v0.1.3
NewGrpcError returns new error which contains gRPC status with provided code and message
func NewGrpcErrorf ¶ added in v0.1.3
NewGrpcErrorf returns new error which contains gRPC status with provided code and message formed from format string and args.
type GrpcStreamContext ¶ added in v0.1.2
type GrpcStreamContext struct { MD metadata.MD Info *grpc.StreamServerInfo }
GrpcStreamContext contains information about gRPC call which is used to validate payment and pricing.
func (*GrpcStreamContext) String ¶ added in v0.1.2
func (context *GrpcStreamContext) String() string
type Payment ¶ added in v0.1.2
type Payment interface{}
Payment represents payment handler specific data which is validated and used to complete payment.
type PaymentHandler ¶ added in v0.1.2
type PaymentHandler interface { // Type is a content of PaymentTypeHeader field which triggers usage of the // payment handler. Type() (typ string) // Payment extracts payment data from gRPC request context and checks // validity of payment data. It returns nil if data is valid or // appropriate gRPC status otherwise. Payment(context *GrpcStreamContext) (payment Payment, err *GrpcError) // Complete completes payment if gRPC call was successfully proceeded by // service. Complete(payment Payment) (err *GrpcError) // CompleteAfterError completes payment if service returns error. CompleteAfterError(payment Payment, result error) (err *GrpcError) }
PaymentHandler interface which is used by gRPC interceptor to get, validate and complete payment. There are two payment handler implementations so far: jobPaymentHandler and escrowPaymentHandler. jobPaymentHandler is depreactted.