frostfs-api-go/session/service.go

48 lines
1.2 KiB
Go
Raw Normal View History

2019-11-18 13:34:06 +00:00
package session
import (
"context"
"crypto/ecdsa"
2020-03-31 07:05:26 +00:00
"github.com/nspcc-dev/neofs-api-go/refs"
2019-11-18 13:34:06 +00:00
)
type (
// KeyStore is an interface that describes storage,
// that allows to fetch public keys by OwnerID.
KeyStore interface {
Get(ctx context.Context, id refs.OwnerID) ([]*ecdsa.PublicKey, error)
}
// TokenStore is a PToken storage manipulation interface.
TokenStore interface {
// New returns new token with specified parameters.
New(p TokenParams) PrivateToken
2019-11-18 13:34:06 +00:00
// Fetch tries to fetch a token with specified id.
Fetch(id TokenID) PrivateToken
2019-11-18 13:34:06 +00:00
// Remove removes token with id from store.
Remove(id TokenID)
}
// TokenParams contains params to create new PToken.
TokenParams struct {
FirstEpoch uint64
LastEpoch uint64
2020-04-28 10:09:18 +00:00
Address Address
2019-11-18 13:34:06 +00:00
OwnerID OwnerID
2020-04-28 10:09:18 +00:00
Verb Verb
2019-11-18 13:34:06 +00:00
}
)
// NewInitRequest returns new initialization CreateRequest from passed Token.
func NewInitRequest(t *Token) *CreateRequest {
return &CreateRequest{Message: &CreateRequest_Init{Init: t}}
}
// NewSignedRequest returns new signed CreateRequest from passed Token.
func NewSignedRequest(t *Token) *CreateRequest {
return &CreateRequest{Message: &CreateRequest_Signed{Signed: t}}
}