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