 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
Index ¶
- func UnmarshalCommand(raw []byte) (*token.Command, error)
- type ACLProvider
- type ACLResources
- type CapabilityChecker
- type Issuer
- type Manager
- type Marshaler
- type PeerLedgerManager
- type PolicyBasedAccessControl
- type PolicyChecker
- type Prover
- func (s *Prover) ListUnspentTokens(ctxt context.Context, header *token.Header, listRequest *token.ListRequest) (*token.CommandResponse_UnspentTokens, error)
- func (s *Prover) MarshalErrorResponse(command []byte, e error) (*token.SignedCommandResponse, error)
- func (s *Prover) ProcessCommand(ctx context.Context, sc *token.SignedCommand) (*token.SignedCommandResponse, error)
- func (s *Prover) RequestApprove(ctx context.Context, header *token.Header, request *token.ApproveRequest) (*token.CommandResponse_TokenTransaction, error)
- func (s *Prover) RequestExpectation(ctx context.Context, header *token.Header, request *token.ExpectationRequest) (*token.CommandResponse_TokenTransaction, error)
- func (s *Prover) RequestImport(ctx context.Context, header *token.Header, requestImport *token.ImportRequest) (*token.CommandResponse_TokenTransaction, error)
- func (s *Prover) RequestRedeem(ctx context.Context, header *token.Header, request *token.RedeemRequest) (*token.CommandResponse_TokenTransaction, error)
- func (s *Prover) RequestTransfer(ctx context.Context, header *token.Header, request *token.TransferRequest) (*token.CommandResponse_TokenTransaction, error)
- func (s *Prover) RequestTransferFrom(ctx context.Context, header *token.Header, request *token.TransferRequest) (*token.CommandResponse_TokenTransaction, error)
- func (s *Prover) ValidateHeader(header *token.Header) error
 
- type ResponseMarshaler
- type Signer
- type SignerIdentity
- type TMSManager
- type TimeFunc
- type TokenCapabilityChecker
- type Transactor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ACLProvider ¶ added in v1.4.0
type ACLResources ¶ added in v1.4.0
type CapabilityChecker ¶ added in v1.4.0
CapabilityChecker is used to check whether or not a channel supports token functions.
type Issuer ¶
type Issuer interface {
	// Issue creates an import request transaction.
	RequestImport(tokensToIssue []*token.TokenToIssue) (*token.TokenTransaction, error)
	// RequestExpectation allows indirect import based on the expectation.
	// It creates a token transaction with the outputs as specified in the expectation.
	RequestExpectation(request *token.ExpectationRequest) (*token.TokenTransaction, error)
}
    An Issuer creates token import requests.
type Manager ¶ added in v1.4.0
type Manager struct {
	LedgerManager ledger.LedgerManager
}
    Manager implements token/server/TMSManager interface TODO: it will be updated after lscc-baased tms configuration is available
func (*Manager) GetIssuer ¶ added in v1.4.0
func (manager *Manager) GetIssuer(channel string, privateCredential, publicCredential []byte) (Issuer, error)
For now it returns a plain issuer. After lscc-based tms configuration is available, it will be updated to return an issuer configured for the specific channel
func (*Manager) GetTransactor ¶ added in v1.4.0
func (manager *Manager) GetTransactor(channel string, privateCredential, publicCredential []byte) (Transactor, error)
GetTransactor returns a Transactor bound to the passed channel and whose credential is the tuple (privateCredential, publicCredential).
type Marshaler ¶
type Marshaler interface {
	MarshalCommandResponse(command []byte, responsePayload interface{}) (*token.SignedCommandResponse, error)
}
    A Marshaler is responsible for marshaling and signging command responses.
type PeerLedgerManager ¶ added in v1.4.0
type PeerLedgerManager struct {
}
    PeerLedgerManager implements the LedgerManager interface by using the peer infrastructure
func (*PeerLedgerManager) GetLedgerReader ¶ added in v1.4.0
func (*PeerLedgerManager) GetLedgerReader(channel string) (ledger.LedgerReader, error)
type PolicyBasedAccessControl ¶
type PolicyBasedAccessControl struct {
	ACLProvider  ACLProvider
	ACLResources *ACLResources
}
    PolicyBasedAccessControl implements token command access control functions.
func (*PolicyBasedAccessControl) Check ¶
func (ac *PolicyBasedAccessControl) Check(sc *token.SignedCommand, c *token.Command) error
type PolicyChecker ¶
type PolicyChecker interface {
	Check(sc *token.SignedCommand, c *token.Command) error
}
    A PolicyChecker is responsible for performing policy based access control checks related to token commands.
type Prover ¶
type Prover struct {
	CapabilityChecker CapabilityChecker
	Marshaler         Marshaler
	PolicyChecker     PolicyChecker
	TMSManager        TMSManager
}
    A Provider is responslble for processing token commands.
func NewProver ¶ added in v1.4.0
func NewProver(policyChecker PolicyChecker, signingIdentity SignerIdentity) (*Prover, error)
NewProver creates a Prover
func (*Prover) ListUnspentTokens ¶ added in v1.4.0
func (s *Prover) ListUnspentTokens(ctxt context.Context, header *token.Header, listRequest *token.ListRequest) (*token.CommandResponse_UnspentTokens, error)
func (*Prover) MarshalErrorResponse ¶
func (*Prover) ProcessCommand ¶
func (s *Prover) ProcessCommand(ctx context.Context, sc *token.SignedCommand) (*token.SignedCommandResponse, error)
func (*Prover) RequestApprove ¶ added in v1.4.0
func (s *Prover) RequestApprove(ctx context.Context, header *token.Header, request *token.ApproveRequest) (*token.CommandResponse_TokenTransaction, error)
func (*Prover) RequestExpectation ¶ added in v1.4.0
func (s *Prover) RequestExpectation(ctx context.Context, header *token.Header, request *token.ExpectationRequest) (*token.CommandResponse_TokenTransaction, error)
RequestExpectation gets an issuer or transactor and creates a token transaction response for import, transfer or redemption.
func (*Prover) RequestImport ¶
func (s *Prover) RequestImport(ctx context.Context, header *token.Header, requestImport *token.ImportRequest) (*token.CommandResponse_TokenTransaction, error)
func (*Prover) RequestRedeem ¶ added in v1.4.0
func (s *Prover) RequestRedeem(ctx context.Context, header *token.Header, request *token.RedeemRequest) (*token.CommandResponse_TokenTransaction, error)
func (*Prover) RequestTransfer ¶ added in v1.4.0
func (s *Prover) RequestTransfer(ctx context.Context, header *token.Header, request *token.TransferRequest) (*token.CommandResponse_TokenTransaction, error)
func (*Prover) RequestTransferFrom ¶ added in v1.4.0
func (s *Prover) RequestTransferFrom(ctx context.Context, header *token.Header, request *token.TransferRequest) (*token.CommandResponse_TokenTransaction, error)
type ResponseMarshaler ¶
ResponseMarshaler produces token.SignedCommandResponse
func NewResponseMarshaler ¶
func NewResponseMarshaler(signerID SignerIdentity) (*ResponseMarshaler, error)
func (*ResponseMarshaler) MarshalCommandResponse ¶
func (s *ResponseMarshaler) MarshalCommandResponse(command []byte, responsePayload interface{}) (*token.SignedCommandResponse, error)
type SignerIdentity ¶
type SignerIdentity interface {
	Signer
	// Serialize returns a byte representation of this identity which is used to verify
	// messages signed by this SignerIdentity
	Serialize() ([]byte, error)
}
    SignerIdentity signs messages and serializes its public identity to bytes
type TMSManager ¶
type TMSManager interface {
	// GetIssuer returns an Issuer bound to the passed channel and whose credential
	// is the tuple (privateCredential, publicCredential).
	GetIssuer(channel string, privateCredential, publicCredential []byte) (Issuer, error)
	// GetTransactor returns a Transactor bound to the passed channel and whose credential
	// is the tuple (privateCredential, publicCredential).
	GetTransactor(channel string, privateCredential, publicCredential []byte) (Transactor, error)
}
    type TokenCapabilityChecker ¶ added in v1.4.0
type TokenCapabilityChecker struct {
	PeerOps peer.Operations
}
    TokenCapabilityChecker implements CapabilityChecker interface
type Transactor ¶ added in v1.4.0
type Transactor interface {
	// RequestTransfer Create data associated to the transfer of a token assuming
	// an application-level identity. The inTokens bytes are the identifiers
	// of the outputs, the details of which need to be looked up from the ledger.
	RequestTransfer(request *token.TransferRequest) (*token.TokenTransaction, error)
	// RequestRedeem allows the redemption of the tokens in the input tokenIds
	// It queries the ledger to read detail for each token id.
	// It creates a token transaction with an output for redeemed tokens and
	// possibly another output to transfer the remaining tokens, if any, to the creator
	RequestRedeem(request *token.RedeemRequest) (*token.TokenTransaction, error)
	// ListTokens returns a slice of unspent tokens owned by this transactor
	ListTokens() (*token.UnspentTokens, error)
	// RequestApprove creates a token transaction that includes the data necessary
	// for approve
	RequestApprove(request *token.ApproveRequest) (*token.TokenTransaction, error)
	// RequestTransferFrom creates a token transaction that includes the data necessary
	// for transferring the tokens of a third party that previsouly delegated the transfer
	// via an approve request
	RequestTransferFrom(request *token.TransferRequest) (*token.TokenTransaction, error)
	// RequestExpectation allows indirect transfer based on the expectation.
	// It creates a token transaction with the outputs as specified in the expectation.
	RequestExpectation(request *token.ExpectationRequest) (*token.TokenTransaction, error)
	// Done releases any resources held by this transactor
	Done()
}
    Transactor allows to operate on issued tokens