2.4. 接口描述
用户与链交互接口
type SDKInterface interface { // GetArgs get arg from transaction parameters // @return: 参数map GetArgs() map[string][]byte // GetState get [key, field] from chain and db // @param key: 获取的参数名 // @param field: 获取的参数名 // @return1: 获取结果,格式为string // @return2: 获取错误信息 GetState(key, field string) (string, error) // GetBatchState get [BatchKeys] from chain and db // @param batchKey: 获取的参数名 // @return1: 获取结果 // @return2: 获取错误信息 GetBatchState(batchKeys []*vmPb.BatchKey) ([]*vmPb.BatchKey, error) // GetStateByte get [key, field] from chain and db // @param key: 获取的参数名 // @param field: 获取的参数名 // @return1: 获取结果,格式为[]byte // @return2: 获取错误信息 GetStateByte(key, field string) ([]byte, error) // GetStateFromKey get [key] from chain and db // @param key: 获取的参数名 // @return1: 获取结果,格式为string // @return2: 获取错误信息 GetStateFromKey(key string) (string, error) // GetStateFromKeyByte get [key] from chain and db // @param key: 获取的参数名 // @return1: 获取结果,格式为[]byte // @return2: 获取错误信息 GetStateFromKeyByte(key string) ([]byte, error) // PutState put [key, field, value] to chain // @param1 key: 参数名 // @param1 field: 参数名 // @param2 value: 参数值,类型为string // @return1: 上传参数错误信息 PutState(key, field string, value string) error // PutStateByte put [key, field, value] to chain // @param1 key: 参数名 // @param1 field: 参数名 // @param2 value: 参数值,类型为[]byte // @return1: 上传参数错误信息 PutStateByte(key, field string, value []byte) error // PutStateFromKey put [key, value] to chain // @param1 key: 参数名 // @param2 value: 参数值,类型为string // @return1: 上传参数错误信息 PutStateFromKey(key string, value string) error // PutStateFromKeyByte put [key, value] to chain // @param1 key: 参数名 // @param2 value: 参数值,类型为[]byte // @return1: 上传参数错误信息 PutStateFromKeyByte(key string, value []byte) error // DelState delete [key, field] to chain // @param1 key: 删除的参数名 // @param1 field: 删除的参数名 // @return1:删除参数的错误信息 DelState(key, field string) error // DelStateFromKey delete [key] to chain // @param1 key: 删除的参数名 // @return1:删除参数的错误信息 DelStateFromKey(key string) error // GetCreatorOrgId get tx creator org id // @return1: 合约创建者的组织ID // @return2: 获取错误信息 GetCreatorOrgId() (string, error) // GetCreatorRole get tx creator role // @return1: 合约创建者的角色 // @return2: 获取错误信息 GetCreatorRole() (string, error) // GetCreatorPk get tx creator pk // @return1: 合约创建者的公钥 // @return2: 获取错误信息 GetCreatorPk() (string, error) // GetSenderOrgId get tx sender org id // @return1: 交易发起者的组织ID // @return2: 获取错误信息 GetSenderOrgId() (string, error) // GetSenderRole get tx sender role // @return1: 交易发起者的角色 // @return2: 获取错误信息 GetSenderRole() (string, error) // GetSenderPk get tx sender pk // @return1: 交易发起者的公钥 // @return2: 获取错误信息 GetSenderPk() (string, error) // GetBlockHeight get tx block height // @return1: 当前块高度 // @return2: 获取错误信息 GetBlockHeight() (int, error) // GetTxId get current tx id // @return1: 交易ID // @return2: 获取错误信息 GetTxId() (string, error) // GetTxInfo get tx info // @param txId :合约交易ID GetTxInfo(txId string) protogo.Response // GetTxTimeStamp get tx timestamp // @return1: 交易timestamp // @return2: 获取错误信息 GetTxTimeStamp() (string, error) // EmitEvent emit event, you can subscribe to the event using the SDK // @param1 topic: 合约事件的主题 // @param2 data: 合约事件的数据,参数数量不可大于16 EmitEvent(topic string, data []string) // Log record log to chain server // @param message: 事情日志的信息 //Deprecated Log(message string) // Debugf record log to chain server // @param format: 日志格式化模板 // @param a: 模板参数 Debugf(format string, a ...interface{}) // Infof record log to chain server // @param format: 日志格式化模板 // @param a: 模板参数 Infof(format string, a ...interface{}) // Warnf record log to chain server // @param format: 日志格式化模板 // @param a: 模板参数 Warnf(format string, a ...interface{}) // Errorf record log to chain server // @param format: 日志格式化模板 // @param a: 模板参数 Errorf(format string, a ...interface{}) // CallContract invoke another contract and get response // @param1: 合约名称 // @param2: 合约方法 // @param3: 合约合约参数 // @return1: 合约结果 CallContract(contractName, method string, args map[string][]byte) protogo.Response // NewIterator range of [startKey, limitKey), front closed back open // @param1: 范围查询起始key // @param2: 范围查询结束key // @return1: 根据起始key生成的迭代器 // @return2: 获取错误信息 NewIterator(startKey string, limitKey string) (ResultSetKV, error) // NewIteratorWithField range of [key+"#"+startField, key+"#"+limitField), front closed back open // @param1: 分别与param2, param3 构成查询起始和结束的key // @param2: [param1 + "#" + param2] 来获取查询起始的key // @param3: [param1 + "#" + param3] 来获取查询结束的key // @return1: 根据起始位置生成的迭代器 // @return2: 获取错误信息 NewIteratorWithField(key string, startField string, limitField string) (ResultSetKV, error) // NewIteratorPrefixWithKeyField range of [key+"#"+field, key+"#"+field], front closed back closed // @param1: [ param1 + "#" +param2 ] 构成前缀范围查询的key // @param2: [ param1 + "#" +param2 ] 构成前缀范围查询的key // @return1: 根据起始位置生成的迭代器 // @return2: 获取错误信息 NewIteratorPrefixWithKeyField(key string, field string) (ResultSetKV, error) // NewIteratorPrefixWithKey range of [key, key], front closed back closed // @param1: 前缀范围查询起始key // @return1: 根据起始位置生成的迭代器 // @return2: 获取错误信息 NewIteratorPrefixWithKey(key string) (ResultSetKV, error) // NewHistoryKvIterForKey query all historical data of key, field // @param1: 查询历史的key // @param2: 查询历史的field // @return1: 根据key, field 生成的历史迭代器 // @return2: 获取错误信息 NewHistoryKvIterForKey(key, field string) (KeyHistoryKvIter, error) // GetSenderAddr Get the address of the tx sender // @return1: 交易发起方地址 // @return2: 获取错误信息 //Deprecated GetSenderAddr() (string, error) // Sender Get the address of the tx sender address // @return1: 交易发起方地址 // @return2: 获取错误信息 Sender() (string, error) // Origin Get the address of the tx origin address // @return1: 交易 // @return2: 获取错误信息 Origin() (string, error) }