common

package
v3.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultGas = uint64(100000)

DefaultGas 默认的Gas值

Variables

View Source
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

func BytesPrefix(prefix []byte) ([]byte, []byte)

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

func GetGas(contractName, method string, defaultGas uint64) uint64

GetGas 获得一个系统合约的某个方法的Gas值,如果没有配置,则返回默认的Gas值

func GetSenderPublicKey added in v3.0.1

func GetSenderPublicKey(txSimContext protocol.TxSimContext) ([]byte, error)

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

func VerifyAndToLowerAddress(context protocol.TxSimContext, address string) (string, bool)

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL