Documentation
¶
Index ¶
- Variables
- func ConvertFromBytes(bb []byte, config ...interface{}) (interface{}, error)
- func ConvertToBytes(v interface{}, config ...interface{}) ([]byte, error)
- func InvokeChaincode(stub shim.ChaincodeStubInterface, chaincodeName string, args []interface{}, ...) (interface{}, error)
- func KeyAsIs(key []string) ([]string, error)
- func KeyError(key *TransformedKey) error
- func KeyToString(stub shim.ChaincodeStubInterface, key Key) (string, error)
- func NameAsIs(name string) (string, error)
- func NormalizeEventName(name interface{}) (string, error)
- func StringsIdFromStr(idString string) []string
- func StringsIdToStr(idSlice []string) string
- type Event
- type EventImpl
- func (e *EventImpl) ArgNameValue(arg interface{}, values []interface{}) (name string, value interface{}, err error)
- func (e *EventImpl) Set(entry interface{}, values ...interface{}) error
- func (e *EventImpl) UseNameTransformer(nt StringTransformer) Event
- func (e *EventImpl) UseSetTransformer(tb ToBytesTransformer) Event
- type FromBytesTransformer
- type HistoryEntry
- type HistoryEntryList
- type Impl
- func (s *Impl) Delete(entry interface{}) error
- func (s *Impl) DeletePrivate(collection string, entry interface{}) error
- func (s *Impl) Exists(entry interface{}) (bool, error)
- func (s *Impl) ExistsPrivate(collection string, entry interface{}) (bool, error)
- func (s *Impl) Get(entry interface{}, config ...interface{}) (interface{}, error)
- func (s *Impl) GetHistory(entry interface{}, target interface{}) (HistoryEntryList, error)
- func (s *Impl) GetInt(key interface{}, defaultValue int) (int, error)
- func (s *Impl) GetPrivate(collection string, entry interface{}, config ...interface{}) (interface{}, error)
- func (s *Impl) Insert(entry interface{}, values ...interface{}) error
- func (s *Impl) InsertPrivate(collection string, entry interface{}, values ...interface{}) (err error)
- func (s *Impl) Key(key interface{}) (*TransformedKey, error)
- func (s *Impl) List(namespace interface{}, target ...interface{}) (interface{}, error)
- func (s *Impl) ListPrivate(collection string, usePrivateDataIterator bool, namespace interface{}, ...) (interface{}, error)
- func (s *Impl) Logger() *logging.Logger
- func (s *Impl) Put(entry interface{}, values ...interface{}) error
- func (s *Impl) PutPrivate(collection string, entry interface{}, values ...interface{}) (err error)
- func (s *Impl) UseKeyTransformer(kt KeyTransformer) State
- func (s *Impl) UseStateGetTransformer(fb FromBytesTransformer) State
- func (s *Impl) UseStatePutTransformer(tb ToBytesTransformer) State
- type Key
- type KeyFunc
- type KeyTransformer
- type KeyValue
- type Keyer
- type KeyerFunc
- type NameValue
- type Namer
- type State
- type StateList
- type StringTransformer
- type StringsKeyer
- type ToBytesTransformer
- type TransformedKey
Constants ¶
This section is empty.
Variables ¶
var ( // ErrUnableToCreateStateKey can occurs while creating composite key for entry ErrUnableToCreateStateKey = errors.New(`unable to create state key`) // ErrUnableToCreateEventName can occurs while creating composite key for entry ErrUnableToCreateEventName = errors.New(`unable to create event name`) // ErrKeyAlreadyExists can occurs when trying to insert entry with existing key ErrKeyAlreadyExists = errors.New(`state key already exists`) // ErrKeyNotFound key not found in chaincode state ErrKeyNotFound = errors.New(`state entry not found`) // ErrAllowOnlyOneValue can occurs when trying to call Insert or Put with more than 2 arguments ErrAllowOnlyOneValue = errors.New(`allow only one value`) // ErrStateEntryNotSupportKeyerInterface can occurs when trying to Insert or Put struct // providing key and struct without Keyer interface support ErrStateEntryNotSupportKeyerInterface = errors.New(`state entry not support keyer interface`) ErrEventEntryNotSupportNamerInterface = errors.New(`event entry not support name interface`) // ErrKeyPartsLength can occurs when trying to create key consisting of zero parts ErrKeyPartsLength = errors.New(`key parts length must be greater than zero`) )
var (
ErrEmptyChaincodeResponsePayload = errors.New(`empty chaincode response payload`)
)
Functions ¶
func ConvertFromBytes ¶ added in v0.3.0
func ConvertToBytes ¶ added in v0.3.0
func InvokeChaincode ¶
func InvokeChaincode( stub shim.ChaincodeStubInterface, chaincodeName string, args []interface{}, channel string, target interface{}) (interface{}, error)
InvokeChaincode locally calls the specified chaincode and converts result into target data type
func KeyToString ¶
func KeyToString(stub shim.ChaincodeStubInterface, key Key) (string, error)
func NormalizeEventName ¶ added in v0.4.1
func StringsIdFromStr ¶ added in v0.4.3
StringsIdFromStr helper for restoring []string key
func StringsIdToStr ¶ added in v0.4.3
StringsIdToStr helper for passing []string key
Types ¶
type Event ¶ added in v0.4.1
type Event interface {
Set(entry interface{}, value ...interface{}) error
UseSetTransformer(ToBytesTransformer) Event
UseNameTransformer(StringTransformer) Event
}
Event interface for working with events in chaincode
type EventImpl ¶ added in v0.4.1
type EventImpl struct {
NameTransformer StringTransformer
SetTransformer ToBytesTransformer
// contains filtered or unexported fields
}
func NewEvent ¶ added in v0.4.1
func NewEvent(stub shim.ChaincodeStubInterface) *EventImpl
NewEvent creates wrapper on shim.ChaincodeStubInterface for working with events
func (*EventImpl) ArgNameValue ¶ added in v0.4.1
func (*EventImpl) UseNameTransformer ¶ added in v0.4.1
func (e *EventImpl) UseNameTransformer(nt StringTransformer) Event
func (*EventImpl) UseSetTransformer ¶ added in v0.4.1
func (e *EventImpl) UseSetTransformer(tb ToBytesTransformer) Event
type FromBytesTransformer ¶ added in v0.3.0
ToBytesTransformer is used after getState operation for convert value
type HistoryEntry ¶
type HistoryEntry struct {
TxId string `json:"txId"`
Timestamp int64 `json:"timestamp"`
IsDeleted bool `json:"isDeleted"`
Value interface{} `json:"value"`
}
HistoryEntry struct containing history information of a single entry
type HistoryEntryList ¶
type HistoryEntryList []HistoryEntry
HistoryEntryList list of history entries
type Impl ¶
type Impl struct {
StateKeyTransformer KeyTransformer
StateGetTransformer FromBytesTransformer
StatePutTransformer ToBytesTransformer
// contains filtered or unexported fields
}
func NewState ¶ added in v0.4.1
func NewState(stub shim.ChaincodeStubInterface, logger *logging.Logger) *Impl
NewState creates wrapper on shim.ChaincodeStubInterface for working with state
func (*Impl) DeletePrivate ¶
Delete entry from private state
func (*Impl) ExistsPrivate ¶
PrivateExists check entry with key exists in chaincode private state
func (*Impl) GetHistory ¶
func (s *Impl) GetHistory(entry interface{}, target interface{}) (HistoryEntryList, error)
GetHistory by key from state, trying to convert to target interface
func (*Impl) GetPrivate ¶
func (s *Impl) GetPrivate(collection string, entry interface{}, config ...interface{}) (interface{}, error)
Get data by key from private state, trying to convert to target interface
func (*Impl) InsertPrivate ¶
func (s *Impl) InsertPrivate(collection string, entry interface{}, values ...interface{}) (err error)
Insert value into chaincode private state, returns error if key already exists
func (*Impl) Key ¶
func (s *Impl) Key(key interface{}) (*TransformedKey, error)
func (*Impl) List ¶
List data from state using objectType prefix in composite key, trying to convert to target interface. Keys - additional components of composite key
func (*Impl) ListPrivate ¶
func (s *Impl) ListPrivate(collection string, usePrivateDataIterator bool, namespace interface{}, target ...interface{}) (interface{}, error)
List data from private state using objectType prefix in composite key, trying to convert to target interface. Keys - additional components of composite key If usePrivateDataIterator is true, used private state for iterate over objects if false, used public state for iterate over keys and GetPrivateData for each key
func (*Impl) PutPrivate ¶
Put data value in private state with key, trying convert data to []byte
func (*Impl) UseKeyTransformer ¶
func (s *Impl) UseKeyTransformer(kt KeyTransformer) State
func (*Impl) UseStateGetTransformer ¶
func (s *Impl) UseStateGetTransformer(fb FromBytesTransformer) State
func (*Impl) UseStatePutTransformer ¶
func (s *Impl) UseStatePutTransformer(tb ToBytesTransformer) State
type KeyTransformer ¶ added in v0.4.1
KeyTransformer is used before putState operation for convert key
type KeyValue ¶ added in v0.4.1
KeyValue interface combines Keyer as ToByter methods - state entry representation
type Keyer ¶
Keyer interface for entity containing logic of its key creation
func StringKeyer ¶
StringKeyer constructor for struct implementing Keyer interface
type NameValue ¶ added in v0.4.1
NameValue interface combines Name() as ToByter methods - event representation
type State ¶ added in v0.3.0
type State interface {
// Get returns value from state, converted to target type
// entry can be Key (string or []string) or type implementing Keyer interface
Get(entry interface{}, target ...interface{}) (result interface{}, err error)
// Get returns value from state, converted to int
// entry can be Key (string or []string) or type implementing Keyer interface
GetInt(entry interface{}, defaultValue int) (result int, err error)
// GetHistory returns slice of history records for entry, with values converted to target type
// entry can be Key (string or []string) or type implementing Keyer interface
GetHistory(entry interface{}, target interface{}) (result HistoryEntryList, err error)
// Exists returns entry existence in state
// entry can be Key (string or []string) or type implementing Keyer interface
Exists(entry interface{}) (exists bool, err error)
// Put returns result of putting entry to state
// entry can be Key (string or []string) or type implementing Keyer interface
// if entry is implements Keyer interface and it's struct or type implementing
// ToByter interface value can be omitted
Put(entry interface{}, value ...interface{}) (err error)
// Insert returns result of inserting entry to state
// If same key exists in state error wil be returned
// entry can be Key (string or []string) or type implementing Keyer interface
// if entry is implements Keyer interface and it's struct or type implementing
// ToByter interface value can be omitted
Insert(entry interface{}, value ...interface{}) (err error)
// List returns slice of target type
// namespace can be part of key (string or []string) or entity with defined mapping
List(namespace interface{}, target ...interface{}) (result interface{}, err error)
// Delete returns result of deleting entry from state
// entry can be Key (string or []string) or type implementing Keyer interface
Delete(entry interface{}) (err error)
Logger() *logging.Logger
UseKeyTransformer(KeyTransformer) State
UseStateGetTransformer(FromBytesTransformer) State
UseStatePutTransformer(ToBytesTransformer) State
// GetPrivate returns value from private state, converted to target type
// entry can be Key (string or []string) or type implementing Keyer interface
GetPrivate(collection string, entry interface{}, target ...interface{}) (result interface{}, err error)
// PutPrivate returns result of putting entry to private state
// entry can be Key (string or []string) or type implementing Keyer interface
// if entry is implements Keyer interface and it's struct or type implementing
// ToByter interface value can be omitted
PutPrivate(collection string, entry interface{}, value ...interface{}) (err error)
// InsertPrivate returns result of inserting entry to private state
// If same key exists in state error wil be returned
// entry can be Key (string or []string) or type implementing Keyer interface
// if entry is implements Keyer interface and it's struct or type implementing
// ToByter interface value can be omitted
InsertPrivate(collection string, entry interface{}, value ...interface{}) (err error)
// ListPrivate returns slice of target type from private state
// namespace can be part of key (string or []string) or entity with defined mapping
// If usePrivateDataIterator is true, used private state for iterate over objects
// if false, used public state for iterate over keys and GetPrivateData for each key
ListPrivate(collection string, usePrivateDataIterator bool, namespace interface{}, target ...interface{}) (result interface{}, err error)
// DeletePrivate returns result of deleting entry from private state
// entry can be Key (string or []string) or type implementing Keyer interface
DeletePrivate(collection string, entry interface{}) (err error)
// ExistsPrivate returns entry existence in private state
// entry can be Key (string or []string) or type implementing Keyer interface
ExistsPrivate(collection string, entry interface{}) (exists bool, err error)
}
State interface for chain code CRUD operations
type StateList ¶ added in v0.4.2
type StateList struct {
// contains filtered or unexported fields
}
func NewStateList ¶ added in v0.4.2
func (*StateList) AddElementToList ¶
func (sl *StateList) AddElementToList(elem interface{})
func (*StateList) Fill ¶ added in v0.4.2
func (sl *StateList) Fill( iter shim.StateQueryIteratorInterface, fromBytes FromBytesTransformer) (list interface{}, err error)
type StringTransformer ¶ added in v0.4.1
NameTransformer is used before setEvent operation for convert name
type StringsKeyer ¶ added in v0.4.1
StringsKeys interface for entity containing logic of its key creation - backward compatibility
type ToBytesTransformer ¶ added in v0.3.0
ToBytesTransformer is used before putState operation for convert payload
type TransformedKey ¶
StateKey stores origin and transformed state key