Documentation
¶
Index ¶
- Constants
- Variables
- func BytesPrefix(prefix []byte) ([]byte, []byte)
- func FormatBytesResult(result []byte, parameters map[string][]byte, ...) ([]byte, error)
- func FormatObjectResult(result interface{}, parameters map[string][]byte, ...) ([]byte, error)
- func GetChainConfig(txSimContext protocol.TxSimContext) (*configPb.ChainConfig, error)
- func GetChainConfigNoRecord(txSimContext protocol.TxSimContext) (*configPb.ChainConfig, error)
- func GetGas(contractName, method string, defaultGas uint64) uint64
- func GetSenderPublicKey(txSimContext protocol.TxSimContext) ([]byte, error)
- func PublicKeyToAddress(publicKey []byte, chainCfg *configPb.ChainConfig) (string, error)
- func ResultBytesAndError(returnResult []byte, event []*common.ContractEvent, err error) *common.ContractResult
- func ResultError(err error) *common.ContractResult
- func ResultErrorWithGasUsed(err error, gas uint64) *common.ContractResult
- func ResultJson(obj interface{}) (*common.ContractResult, error)
- func ResultSuccess(result []byte, gas uint64) *common.ContractResult
- func VerifyAndToLowerAddress(context protocol.TxSimContext, address string) (string, bool)
- func VerifyAndToLowerAddress2(blockVersion uint32, addrType configPb.AddrType, address string) (string, bool)
- func WrapEventResult(...) ...
- func WrapResultFunc(...) ...
- func WrapResultUint64(i uint64, err error) *common.ContractResult
- type BaseContract
- type Contract
- type ContractFunc
- type TruncateConfig
- func (t *TruncateConfig) TruncateBlock(b *commonPb.Block)
- func (t *TruncateConfig) TruncateBlockWithRWSet(b *commonPb.BlockInfo)
- func (t *TruncateConfig) TruncatePayload(payload *commonPb.Payload)
- func (t *TruncateConfig) TruncateRWSet(rwset *commonPb.TxRWSet)
- func (t *TruncateConfig) TruncateTx(tx *commonPb.Transaction)
Constants ¶
const DefaultGas = uint64(100000)
DefaultGas 默认的Gas值
Variables ¶
var ( // ErrContractIdIsNil err msg ErrContractIdIsNil = errors.New("the contractId is empty") // ErrContractNotFound err msg ErrContractNotFound = errors.New("the contractName is not exist") // ErrTxTypeNotSupport err msg ErrTxTypeNotSupport = errors.New("the txType does not support") // ErrMethodNotFound err msg ErrMethodNotFound = errors.New("the method does not found") // ErrParamsEmpty err msg ErrParamsEmpty = errors.New("the params is empty") // ErrContractName err msg ErrContractName = errors.New("the contractName is error") // ErrOutOfRange err msg ErrOutOfRange = errors.New("out of range") // ErrParams err msg ErrParams = errors.New("params is error") // ErrSequence err msg ErrSequence = errors.New("sequence is error") // ErrUnmarshalFailed err msg ErrUnmarshalFailed = errors.New("unmarshal is error") )
Functions ¶
func BytesPrefix ¶
BytesPrefix 根据前缀构造范围查询用的start和limit @param prefix @return []byte @return []byte
func FormatBytesResult ¶
func FormatBytesResult(result []byte, parameters map[string][]byte, defaultFormat syscontract.ContentType) ( []byte, error)
FormatBytesResult 按照指定的ContentType格式化成字节数组 @param result @param parameters @param defaultFormat @return []byte @return error
func FormatObjectResult ¶
func FormatObjectResult(result interface{}, parameters map[string][]byte, defaultFormat syscontract.ContentType) ( []byte, error)
FormatObjectResult 按照指定的ContentType格式化对象成字节数组 @param result @param parameters @param defaultFormat @return []byte @return error
func GetChainConfig ¶
func GetChainConfig(txSimContext protocol.TxSimContext) (*configPb.ChainConfig, error)
GetChainConfig 获得当前的链配置,记入读集 @param txSimContext @return *configPb.ChainConfig @return error
func GetChainConfigNoRecord ¶
func GetChainConfigNoRecord(txSimContext protocol.TxSimContext) (*configPb.ChainConfig, error)
GetChainConfigNoRecord 获得当前的链配置,不记入读集 @param txSimContext @return *configPb.ChainConfig @return error
func GetGas ¶
GetGas 获得一个系统合约的某个方法的Gas值,如果没有配置,则返回默认的Gas值
func GetSenderPublicKey ¶ added in v3.0.1
GetSenderPublicKey get tx sender public key @param txSimContext @return []byte public key @return error
func PublicKeyToAddress ¶ added in v3.0.1
func PublicKeyToAddress(publicKey []byte, chainCfg *configPb.ChainConfig) (string, error)
PublicKeyToAddress publicKey to address @param publicKey @param chainCfg chain config @return string as "760352ae678c378a86e03ccad56c3d2d712134ed" "0X760352ae678c378a86e03ccad56c3d2d712134ed" @error
func ResultBytesAndError ¶
func ResultBytesAndError(returnResult []byte, event []*common.ContractEvent, err error) *common.ContractResult
ResultBytesAndError make *common.ContractResult with data, event, err
func ResultError ¶
func ResultError(err error) *common.ContractResult
ResultError make *common.ContractResult with err
func ResultErrorWithGasUsed ¶
func ResultErrorWithGasUsed(err error, gas uint64) *common.ContractResult
ResultErrorWithGasUsed 构造一个包含Error结果的ContractResult对象 @param err @param gas @return *common.ContractResult
func ResultJson ¶
func ResultJson(obj interface{}) (*common.ContractResult, error)
ResultJson 构造一个包含输入对象Json作为Result的ContractResult对象 @param obj @return *common.ContractResult @return error
func ResultSuccess ¶
func ResultSuccess(result []byte, gas uint64) *common.ContractResult
ResultSuccess make *common.ContractResult with data
func VerifyAndToLowerAddress ¶ added in v3.0.1
VerifyAndToLowerAddress by TxSimContext @param context @param address as "A60352ae678c378a86e03ccad56c3d2d712134ed" "0X760352ae678c378a86e03ccad56c3d2d712134ed" @return string as "a60352ae678c378a86e03ccad56c3d2d712134ed" "0x760352ae678c378a86e03ccad56c3d2d712134ed" @error
func VerifyAndToLowerAddress2 ¶ added in v3.0.1
func VerifyAndToLowerAddress2(blockVersion uint32, addrType configPb.AddrType, address string) (string, bool)
VerifyAndToLowerAddress2 by blockVersion addrType @param blockVersion @param addrType as "A60352ae678c378a86e03ccad56c3d2d712134ed" "760352ae678c378a86e03ccad56c3d2d712134ed" @return address as "a60352ae678c378a86e03ccad56c3d2d712134ed" "760352ae678c378a86e03ccad56c3d2d712134ed" @bool is valid address
func WrapEventResult ¶
func WrapEventResult(f func(txSimContext protocol.TxSimContext, parameters map[string][]byte) ( []byte, []*common.ContractEvent, error)) func( txSimContext protocol.TxSimContext, parameters map[string][]byte) *common.ContractResult
WrapEventResult 包装原有的返回[]byte的函数,改为返回ContractResult和事件的函数,特别注意:若改为调用此方法则需要做兼容
func WrapResultFunc ¶
func WrapResultFunc(f func(txSimContext protocol.TxSimContext, parameters map[string][]byte) ([]byte, error)) func( txSimContext protocol.TxSimContext, parameters map[string][]byte) *common.ContractResult
WrapResultFunc 包装原有的返回[]byte的函数,改为返回ContractResult的函数
func WrapResultUint64 ¶ added in v3.0.1
func WrapResultUint64(i uint64, err error) *common.ContractResult
WrapResultUint64 将一个Uint64返回成ContractResult对象 @param i @param err @return *common.ContractResult
Types ¶
type BaseContract ¶
type BaseContract struct {
// contains filtered or unexported fields
}
BaseContract 所有Native合约的基础合约,提供了方法注册和获取
func (*BaseContract) GetMethod ¶
func (g *BaseContract) GetMethod(methodName string, blockVersion uint32) ContractFunc
GetMethod 根据合约方法名和版本获得对应的合约函数 @param methodName @param blockVersion @return ContractFunc
func (*BaseContract) InitMethod ¶
func (g *BaseContract) InitMethod(ms map[string]ContractFunc)
InitMethod 初始化一堆没有版本限制的方法 @param ms
func (*BaseContract) RegisterMethod ¶
func (g *BaseContract) RegisterMethod(methodName string, f ContractFunc, startVersion uint32, endVersion uint32)
RegisterMethod 注册一个新的合约方法,并知道生效和失效的版本 @param methodName @param f @param startVersion @param endVersion
type Contract ¶
type Contract interface { //GetMethod get register method by name GetMethod(methodName string, blockVersion uint32) ContractFunc }
Contract define native Contract interface
type ContractFunc ¶
type ContractFunc func(context protocol.TxSimContext, params map[string][]byte) *common.ContractResult
ContractFunc invoke contract method, return result
type TruncateConfig ¶ added in v3.0.1
type TruncateConfig struct {
// contains filtered or unexported fields
}
TruncateConfig util to truncate struct field size
func NewTruncateConfig ¶ added in v3.0.1
func NewTruncateConfig(truncateValueLen int, truncateModel string) *TruncateConfig
NewTruncateConfig 创建一个裁剪操作对象 @param truncateValueLen @param truncateModel @return *TruncateConfig
func (*TruncateConfig) TruncateBlock ¶ added in v3.0.1
func (t *TruncateConfig) TruncateBlock(b *commonPb.Block)
TruncateBlock 裁剪区块 @param b
func (*TruncateConfig) TruncateBlockWithRWSet ¶ added in v3.0.1
func (t *TruncateConfig) TruncateBlockWithRWSet(b *commonPb.BlockInfo)
TruncateBlockWithRWSet 裁剪区块和读写集 @param b
func (*TruncateConfig) TruncatePayload ¶ added in v3.0.1
func (t *TruncateConfig) TruncatePayload(payload *commonPb.Payload)
TruncatePayload 裁剪交易 @param payload
func (*TruncateConfig) TruncateRWSet ¶ added in v3.0.1
func (t *TruncateConfig) TruncateRWSet(rwset *commonPb.TxRWSet)
TruncateRWSet 裁剪读写集 @param rwset
func (*TruncateConfig) TruncateTx ¶ added in v3.0.1
func (t *TruncateConfig) TruncateTx(tx *commonPb.Transaction)
TruncateTx 裁剪交易 @param tx