Documentation
¶
Overview ¶
Package router provides base router for using in chaincode Invoke function
Index ¶
- Constants
- Variables
- func EmptyContextHandler(c Context) (interface{}, error)
- type Chaincode
- type Context
- type ContextHandlerFunc
- type ContextMiddlewareFunc
- type ContextResponse
- type Group
- func (g *Group) Context(stub shim.ChaincodeStubInterface) Context
- func (g *Group) ContextHandler(path string, fn ContextHandlerFunc) *Group
- func (g *Group) Group(path string) *Group
- func (g *Group) Handle(stub shim.ChaincodeStubInterface) peer.Response
- func (g *Group) HandleContext(c Context) peer.Response
- func (g *Group) HandleInit(stub shim.ChaincodeStubInterface) peer.Response
- func (g *Group) Init(handler HandlerFunc, middleware ...MiddlewareFunc) *Group
- func (g *Group) Invoke(path string, handler HandlerFunc, middleware ...MiddlewareFunc) *Group
- func (g *Group) Pre(middleware ...ContextMiddlewareFunc) *Group
- func (g *Group) Query(path string, handler HandlerFunc, middleware ...MiddlewareFunc) *Group
- func (g *Group) StubHandler(path string, fn StubHandlerFunc) *Group
- func (g *Group) Use(middleware ...MiddlewareFunc) *Group
- type HandlerFunc
- type InterfaceMap
- type MiddlewareFunc
- type Response
- type StubHandlerFunc
Constants ¶
const DefaultParam = `default`
Default parameter name
const InitFunc = `init`
Variables ¶
var ( // ErrEmptyArgs occurs when trying to invoke chaincode method with empty args ErrEmptyArgs = errors.New(`empty args`) // ErrMethodNotFound occurs when trying to invoke non existent chaincode method ErrMethodNotFound = errors.New(`chaincode method not found`) // ErrArgsNumMismatch occurs when the number of declared and the number of arguments passed does not match ErrArgsNumMismatch = errors.New(`chaincode method args count mismatch`) // ErrHandlerError error in handler ErrHandlerError = errors.New(`router handler error`) )
Functions ¶
func EmptyContextHandler ¶ added in v0.3.0
Types ¶
type Chaincode ¶
type Chaincode struct {
// contains filtered or unexported fields
}
Chaincode default chaincode implementation with router
func NewChaincode ¶
NewChaincode new default chaincode implementation
type Context ¶
type Context interface {
Stub() shim.ChaincodeStubInterface
Client() (cid.ClientIdentity, error)
Response() Response
Logger() *shim.ChaincodeLogger
Path() string
State() state.State
UseState(state.State) state.State
Time() (time.Time, error)
ReplaceArgs(args [][]byte) Context // replace args, for usage in preMiddleware
GetArgs() [][]byte
// Deprecated: Use Params instead.
Args() InterfaceMap
// Deprecated: Use Arg instead.
Arg(string) interface{}
// Deprecated: Use ParamString instead.
ArgString(string) string
// Deprecated: Use ParamBytes instead.
ArgBytes(string) []byte
// Deprecated: Use ParamInt instead.
ArgInt(string) int
// Deprecated: Use SetParam instead.
SetArg(string, interface{})
// Params returns parameter values.
Params() InterfaceMap
// Param returns parameter value.
Param(name ...string) interface{}
// ParamString returns parameter value as string.
ParamString(name string) string
// ParamBytes returns parameter value as bytes.
ParamBytes(name string) []byte
// ParamInt returns parameter value as bytes.
ParamInt(name string) int
// SetParam sets parameter value.
SetParam(name string, value interface{})
// Get retrieves data from the context.
Get(key string) interface{}
// Set saves data in the context.
Set(key string, value interface{})
// Deprecated: Use Event().Set() instead
SetEvent(string, interface{}) error
Event() state.Event
UseEvent(state.Event) state.Event
}
Context of chaincode invoke
type ContextHandlerFunc ¶
ContextHandlerFunc use stub context as input parameter
type ContextMiddlewareFunc ¶
type ContextMiddlewareFunc func(ContextHandlerFunc, ...int) ContextHandlerFunc
ContextMiddlewareFunc middleware for ContextHandlerFun
type ContextResponse ¶
type ContextResponse struct {
// contains filtered or unexported fields
}
ContextResponse implementation
func (ContextResponse) Create ¶
func (c ContextResponse) Create(data interface{}, err interface{}) peer.Response
Create returns error response if err != nil
func (ContextResponse) Error ¶
func (c ContextResponse) Error(err interface{}) peer.Response
Error response
func (ContextResponse) Success ¶
func (c ContextResponse) Success(data interface{}) peer.Response
Success response
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
Group of chain code functions
func (*Group) Context ¶
func (g *Group) Context(stub shim.ChaincodeStubInterface) Context
Context returns chain code invoke context for provided path and stub
func (*Group) ContextHandler ¶
func (g *Group) ContextHandler(path string, fn ContextHandlerFunc) *Group
ContextHandler adds new context handler using presented path
func (*Group) Group ¶
Group gets new group using presented path New group can be used as independent
func (*Group) Handle ¶
func (g *Group) Handle(stub shim.ChaincodeStubInterface) peer.Response
Handle used for using in CC Invoke function Must be called after adding new routes using Add function
func (*Group) HandleContext ¶ added in v0.3.0
func (*Group) HandleInit ¶
func (g *Group) HandleInit(stub shim.ChaincodeStubInterface) peer.Response
HandleInit handle chaincode init method
func (*Group) Init ¶
func (g *Group) Init(handler HandlerFunc, middleware ...MiddlewareFunc) *Group
func (*Group) Invoke ¶
func (g *Group) Invoke(path string, handler HandlerFunc, middleware ...MiddlewareFunc) *Group
Invoke configure handler and middleware functions for chain code function name
func (*Group) Pre ¶
func (g *Group) Pre(middleware ...ContextMiddlewareFunc) *Group
func (*Group) Query ¶
func (g *Group) Query(path string, handler HandlerFunc, middleware ...MiddlewareFunc) *Group
Query alias for invoke
func (*Group) StubHandler ¶
func (g *Group) StubHandler(path string, fn StubHandlerFunc) *Group
StubHandler adds new stub handler using presented path
func (*Group) Use ¶
func (g *Group) Use(middleware ...MiddlewareFunc) *Group
Use middleware function in chain code functions group
type HandlerFunc ¶
HandlerFunc returns result as interface and error, this is converted to peer.Response via response.Create
type MiddlewareFunc ¶
type MiddlewareFunc func(HandlerFunc, ...int) HandlerFunc
MiddlewareFunc middleware for HandlerFunc
type Response ¶
type Response interface {
Error(err interface{}) peer.Response
Success(data interface{}) peer.Response
Create(data interface{}, err interface{}) peer.Response
}
Response chaincode interface
type StubHandlerFunc ¶
type StubHandlerFunc func(shim.ChaincodeStubInterface) peer.Response
StubHandlerFunc acts as raw chaincode invoke method, accepts stub and returns peer.Response