evm

package
v1.6.3 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2023 License: GPL-3.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EVMX         = "evm"
	EVMTokenX    = "evm_token"
	EVMTransferX = "evm_transfer"
)

db

View Source
const EVMMapping = `` /* 548-byte string literal not displayed */

EVMMapping evm执行记录表

View Source
const EVMTransferMapping = `` /* 875-byte string literal not displayed */
View Source
const EmptyAddr = "1111111111111111111114oLvT2"
View Source
const EmptyAddrEth = "0x0000000000000000000000000000000000000000"
View Source
const TokenMapping = `` /* 864-byte string literal not displayed */

TokenMapping mapping nolint

Variables

View Source
var ErrNoEvent = errors.New("no event")
View Source
var ErrNoEvents = errors.New("no events")

Functions

func NewConvert

func NewConvert(paraTitle, symbol string, _ []string) db.ExecConvert

NewConvert new convert

func NewEVMKey

func NewEVMKey(id string) *db.IKey

func RegisterEventHandle

func RegisterEventHandle(name string, convert EventHandle)

func RegisterFuncConvert

func RegisterFuncConvert(name string, convert FuncConvert)

func RegisterInitDB

func RegisterInitDB(initDB InitDB)

func TokenID

func TokenID(contractAddr, ownerAddr, goodsID string) string

func TransferID

func TransferID(txHash, TokenID string) string

func UnpackEvent

func UnpackEvent(data []byte, topics []pcom.Hash, abi *pabi.ABI) (name string, ans map[string]interface{}, err error)

func UnpackEventData

func UnpackEventData(data []byte, topic pcom.Hash, abi *pabi.ABI) (event *pabi.Event, args []interface{}, err error)

UnpackEventData use abi and topic unpack event data

func UnpackParam

func UnpackParam(data []byte, abi *pabi.ABI) (args map[string]interface{}, err error)

func UnpackParamData

func UnpackParamData(data []byte, abi *pabi.ABI) (method *pabi.Method, args []interface{}, err error)

UnpackParamData 通过abi解析调用方法和输入参数

func UpperFirstLetter

func UpperFirstLetter(name string) string

Types

type Convert

type Convert struct {
	ConfigDB      proofconfig.ConfigDB
	ContractDB    contract.DB
	ContractVrfDB contractverify.DB
	NftTokenDb    ndb.TokenDB
	EvmTokenDb    TokenDB
	// contains filtered or unexported fields
}

Convert tx convert

func (*Convert) ConvertTx

func (c *Convert) ConvertTx(env *db.TxEnv, op int) ([]db.Record, error)

ConvertTx impl

func (*Convert) InitDB

func (c *Convert) InitDB(cli db.DBCreator) error

InitDB init db

func (*Convert) SetDB

func (c *Convert) SetDB(db db.WrapDB) error

SetDB 访问权限控制index

type EVM

type EVM map[string]interface{}

EVM evm执行记录

func (EVM) GetEvent

func (e EVM) GetEvent(name string) (map[string]interface{}, error)

GetEvent return event

func (EVM) GetEvents

func (e EVM) GetEvents() (map[string]interface{}, error)

GetEvents return events

func (EVM) Key

func (e EVM) Key() string

Key for token index id

func (EVM) ToJSON

func (e EVM) ToJSON() ([]byte, error)

type EventHandle

type EventHandle func(*Convert, int, EVM) ([]db.Record, error)

func GetEventHandle

func GetEventHandle(name string) (EventHandle, bool)

type FuncConvert

type FuncConvert func(*Convert, int, EVM) ([]db.Record, error)

func GetFuncConvert

func GetFuncConvert(name string) (FuncConvert, bool)

type InitDB

type InitDB func(cli db.DBCreator) error

type RecordEVM

type RecordEVM struct {
	*db.IKey
	*db.Op
	// contains filtered or unexported fields
}

RecordEVM db evm

func (*RecordEVM) Value

func (r *RecordEVM) Value() []byte

Value impl

type RecordToken

type RecordToken struct {
	*db.IKey
	*db.Op
	// contains filtered or unexported fields
}

func NewRecordToken

func NewRecordToken(token *Token, op int) *RecordToken

func (*RecordToken) Value

func (r *RecordToken) Value() []byte

Value impl

type RecordTransfer

type RecordTransfer struct {
	*db.IKey
	*db.Op
	// contains filtered or unexported fields
}

func NewRecordTransfer

func NewRecordTransfer(token *Transfer, op int) *RecordTransfer

func (*RecordTransfer) Source

func (r *RecordTransfer) Source() interface{}

func (*RecordTransfer) Value

func (r *RecordTransfer) Value() []byte

Value impl

type Token

type Token struct {
	TokenID      string `json:"token_id"`
	Owner        string `json:"owner"`
	TokenType    string `json:"token_type"`
	Amount       int64  `json:"amount"`
	ContractAddr string `json:"contract_addr"`

	PublishAddress     string `json:"publish_address"`
	PublishTxHash      string `json:"publish_tx_hash"`
	PublishHeight      int64  `json:"publish_height"`
	PublishHeightIndex int64  `json:"publish_height_index"`
	PublishBlockHash   string `json:"publish_block_hash"`
	PublishBlockTime   int64  `json:"publish_block_time"`
}

func (*Token) Key

func (t *Token) Key() string

func (*Token) LoadBlockData

func (t *Token) LoadBlockData(data map[string]interface{})

type TokenDB

type TokenDB interface {
	GetToken(contractAddr, ownerAddr string, goodsID string) (*Token, error)
	GetTokens(contractAddr string, goodsID string) ([]*Token, error)
	GetNft(contractAddr string, goodsID string) (*Token, error)
	UpdateCache(token *Token)
	GetTokenList(contractAddr, ownerAddr string, ids []string) ([]*Token, error)
	GetTokenMap(contractAddr, ownerAddr string, ids []string) (map[string]*Token, error)
}

func NewTokenDB

func NewTokenDB(db db.WrapDB) TokenDB

NewTokenDB NewTokenDB

type Transfer

type Transfer struct {
	TokenID      string `json:"token_id"`
	From         string `json:"from"`
	To           string `json:"to"`
	Operator     string `json:"operator"`
	Amount       int64  `json:"amount"`
	TokenType    string `json:"token_type"`
	ContractAddr string `json:"contract_addr"`

	TxHash      string `json:"tx_hash"`
	Height      int64  `json:"height"`
	HeightIndex int64  `json:"height_index"`
	BlockHash   string `json:"block_hash"`
	BlockTime   int64  `json:"block_time"`
}

func (*Transfer) GetNewToken

func (t *Transfer) GetNewToken() *Token

GetNewToken 获取新增的token

func (*Transfer) IsMint

func (t *Transfer) IsMint() bool

func (*Transfer) Key

func (t *Transfer) Key() string

func (*Transfer) LoadBlockData

func (t *Transfer) LoadBlockData(data map[string]interface{})

type TxOption

type TxOption struct {
	ContractAddr string                 `json:"contract_addr,omitempty"`
	ContractType string                 `json:"contract_type,omitempty"`
	CallFunName  string                 `json:"call_fun_name,omitempty"`
	TokenID      []string               `json:"token_id,omitempty"`
	Transfers    []*Transfer            `json:"transfers,omitempty"`
	Events       map[string]interface{} `json:"events,omitempty"`
	Params       map[string]interface{} `json:"params,omitempty"`
}

TxOption Evm TxOption

Directories

Path Synopsis
nft
db

Jump to

Keyboard shortcuts

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