server

package
v1.4.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func UnmarshalCommand

func UnmarshalCommand(raw []byte) (*token.Command, error)

UnmarshalCommand unmarshal token.Command messages

Types

type ACLProvider added in v1.4.0

type ACLProvider interface {
	// CheckACL checks access control for the resource for the given channel.
	// idinfo is an object such as []*common.SignedData from which
	// an id can be extracted for testing against a policy
	CheckACL(resName string, channelID string, idinfo interface{}) error
}

type ACLResources added in v1.4.0

type ACLResources struct {
	IssueTokens    string
	TransferTokens string
	ListTokens     string
}

type CapabilityChecker added in v1.4.0

type CapabilityChecker interface {
	FabToken(channelId string) (bool, error)
}

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

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 (s *Prover) MarshalErrorResponse(command []byte, e error) (*token.SignedCommandResponse, error)

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 *