types

package
v3.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Success                    = iota
	Unknown                    = 1
	OutOfGasLimit              = 2 ///< Too little gas to pay for the base transaction cost.
	NotEnoughCash              = 7
	BadInstruction             = 10
	BadJumpDestination         = 11
	OutOfGas                   = 12 ///< Ran out of gas executing code of the transaction.
	OutOfStack                 = 13 ///< Ran out of stack executing code of the transaction.
	StackUnderflow             = 14
	PrecompiledError           = 15
	RevertInstruction          = 16
	ContractAddressAlreadyUsed = 17
	PermissionDenied           = 18
	CallAddressError           = 19
	GasOverflow                = 20
	ContractFrozen             = 21
	AccountFrozen              = 22
	AccountAbolished           = 23
	ContractAbolished          = 24
	WASMValidationFailure      = 32
	WASMArgumentOutOfRange     = 33
	WASMUnreachableInstruction = 34
	WASMTrap                   = 35
	NonceCheckFail             = 10000 /// txPool related errors
	BlockLimitCheckFail        = 10001
	TxPoolIsFull               = 10002
	Malformed                  = 10003
	AlreadyInTxPool            = 10004
	TxAlreadyInChain           = 10005
	InvalidChainId             = 10006
	InvalidGroupId             = 10007
	InvalidSignature           = 10008
	RequestNotBelongToTheGroup = 10009
	TransactionPoolTimeout     = 10010
	AlreadyInTxPoolAndAccept   = 10011
)

Variables

View Source
var (
	ErrInvalidChainID = errors.New("invalid chain id for signer")
)
View Source
var (
	ErrInvalidSig = errors.New("invalid raw transaction v, r, s values")
)

Functions

This section is empty.

Types

type Block

type Block struct {
	ConsensusWeights []uint64      `json:"consensusWeights"`
	ExtraData        string        `json:"extraData"`
	GasLimit         string        `json:"gasLimit"`
	GasUsed          string        `json:"gasUsed"`
	Hash             string        `json:"hash"`
	Number           uint64        `json:"number"`
	ParentInfo       []ParentInfo  `json:"parentInfo"`
	ReceiptsRoot     string        `json:"receiptsRoot"`
	Sealer           uint64        `json:"sealer"`
	SealerList       []string      `json:"sealerList"`
	SignatureList    []Signature   `json:"signatureList"`
	StateRoot        string        `json:"stateRoot"`
	Timestamp        uint64        `json:"timestamp"`
	Transactions     []interface{} `json:"transactions"`
	TxsRoot          string        `json:"txsRoot"`
	Version          uint64        `json:"version"`
}

func (*Block) GetGasLimit

func (B *Block) GetGasLimit() string

GetGasLimit returns the block max gas limit string

func (*Block) GetGasUsed

func (B *Block) GetGasUsed() string

GetGasUsed returns the block gas used string

func (*Block) GetHash

func (B *Block) GetHash() string

GetHash returns the block hash string

func (*Block) GetNumber

func (B *Block) GetNumber() uint64

GetNumber returns the block number uint64

func (*Block) GetParentInfo

func (B *Block) GetParentInfo() []ParentInfo

func (*Block) GetReceiptsRoot

func (B *Block) GetReceiptsRoot() string

GetReceiptsRoot returns the block receipts root string

func (*Block) GetSealer

func (B *Block) GetSealer() uint64

GetSealer returns the sealer node sequence number string

func (*Block) GetSealerList

func (B *Block) GetSealerList() []string

GetSealerList returns the sealer node list

func (*Block) GetSignatureList

func (B *Block) GetSignatureList() []Signature

GetSignatureList returns the block signature list

func (*Block) GetTimestamp

func (B *Block) GetTimestamp() uint64

GetTimestamp returns the block timestamp uint64

func (*Block) GetTransactions

func (B *Block) GetTransactions() []interface{}

GetTransactions returns the blcok transcation list

func (*Block) GetTxsRoot

func (B *Block) GetTxsRoot() string

func (*Block) GetVersion

func (B *Block) GetVersion() uint64

type EIP155Signer

type EIP155Signer struct {
	// contains filtered or unexported fields
}

EIP155Transaction implements Signer using the EIP155 rules.

func NewEIP155Signer

func NewEIP155Signer(chainId *big.Int) EIP155Signer

func (EIP155Signer) Equal

func (s EIP155Signer) Equal(s2 Signer) bool

func (EIP155Signer) Hash

func (s EIP155Signer) Hash(tx *Transaction) common.Hash

Hash returns the hash to be signed by the sender. It does not uniquely identify the transaction.

func (EIP155Signer) Sender

func (s EIP155Signer) Sender(tx *Transaction) (common.Address, error)

func (EIP155Signer) SignatureValues

func (s EIP155Signer) SignatureValues(tx *Transaction, sig []byte) (R, S, V *big.Int, err error)

SignatureValues returns signature values. This signature needs to be in the [R || S || V] format where V is 0 or 1.

type EventLogParams

type EventLogParams struct {
	FromBlock int64    `json:"fromBlock"`
	ToBlock   int64    `json:"toBlock"`
	Addresses []string `json:"addresses"`
	Topics    []string `json:"topics"`
}

type FrontierSigner

type FrontierSigner struct{}

func (FrontierSigner) Equal

func (fs FrontierSigner) Equal(s2 Signer) bool

func (FrontierSigner) Hash

func (fs FrontierSigner) Hash(tx *Transaction) common.Hash

Hash returns the hash to be signed by the sender. It does not uniquely identify the transaction.

func (FrontierSigner) Sender

func (fs FrontierSigner) Sender(tx *Transaction) (common.Address, error)

func (FrontierSigner) SignatureValues

func (fs FrontierSigner) SignatureValues(tx *Transaction, sig []byte) (r, s, v *big.Int, err error)

SignatureValues returns signature values. This signature needs to be in the [R || S || V] format where V is 0 or 1.

type HomesteadSigner

type HomesteadSigner struct{ FrontierSigner }

HomesteadTransaction implements TransactionInterface using the homestead rules.

func (HomesteadSigner) Equal

func (s HomesteadSigner) Equal(s2 Signer) bool

func (HomesteadSigner) Sender

func (hs HomesteadSigner) Sender(tx *Transaction) (common.Address, error)

func (HomesteadSigner) SignatureValues

func (hs HomesteadSigner) SignatureValues(tx *Transaction, sig []byte) (r, s, v *big.Int, err error)

SignatureValues returns signature values. This signature needs to be in the [R || S || V] format where V is 0 or 1.

type Log

type Log struct {
	// Consensus fields:
	// address of the contract that generated the event
	Address common.Address `json:"address" gencodec:"required"`
	// list of topics provided by the contract.
	Topics []common.Hash `json:"topics" gencodec:"required"`
	// supplied by the contract, usually ABI-encoded
	Data []byte `json:"data" gencodec:"required"`

	// Derived fields. These fields are filled in by the node
	// but not secured by consensus.
	// block in which the transaction was included
	BlockNumber uint64 `json:"blockNumber"`
	// hash of the transaction
	TxHash common.Hash `json:"transactionHash" gencodec:"required"`
	// index of the transaction in the block
	TxIndex uint `json:"transactionIndex" gencodec:"required"`
	// // hash of the block in which the transaction was included
	// BlockHash common.Hash `json:"blockHash"`
	// index of the log in the block
	Index uint `json:"logIndex" gencodec:"required"`
}

Log represents a contract log event. These events are generated by the LOG opcode and stored/indexed by the node.

type NewLog

type NewLog struct {
	BlockNumber string `json:"blockNumber"`
	// Consensus fields:
	// address of the contract that generated the event
	Address string `json:"address"`
	// supplied by the contract, usually ABI-encoded
	Data string `json:"data"`
	// list of topics provided by the contract.
	Topics []string `json:"topics"`
}

NewLog is used for the receipt

type ParentInfo

type ParentInfo struct {
	BlockHash   string `json:"blockHash"`
	BlockNumber uint64 `json:"blockNumber"`
}

func (*ParentInfo) GetBlockHash

func (p *ParentInfo) GetBlockHash() string

func (*ParentInfo) GetBlockNumber

func (p *ParentInfo) GetBlockNumber() uint64

type Peer

type Peer struct {
	BlockNumber int    `json:"blockNumber"`
	GenesisHash string `json:"genesisHash"`
	LatestHash  string `json:"latestHash"`
	NodeId      string `json:"nodeId"`
}

func (*Peer) GetBlockNumber

func (p *Peer) GetBlockNumber() int

GetBlockNumber returns the laster block number int

func (*Peer) GetGenesisHash

func (p *Peer) GetGenesisHash() string

GetGenesisHash returns the original block hash string

func (*Peer) GetLatestHash

func (p *Peer) GetLatestHash() string

GetLatestHash returns the laster block hash string

func (*Peer) GetNodeId

func (p *Peer) GetNodeId() string

GetNodeId returns the node id string

type Receipt

type Receipt struct {
	BlockNumber     int       `json:"blockNumber"`
	ContractAddress string    `json:"contractAddress"`
	From            string    `json:"from"`
	GasUsed         string    `json:"gasUsed"`
	Hash            string    `json:"hash"`
	Input           string    `json:"input"`
	Logs            []*NewLog `json:"logEntries"`
	Message         string    `json:"message"`
	Output          string    `json:"output"`
	Status          int       `json:"status"`
	To              string    `json:"to"`
	TransactionHash string    `json:"transactionHash"`
	ReceiptProof    []string  `json:"txReceiptProof"`
	Version         uint64    `json:"version"`
}

Receipt represents the results of a transaction.

func (*Receipt) GetBlockNumber

func (r *Receipt) GetBlockNumber() int

GetBlockNumber returns the block number string

func (*Receipt) GetContractAddress

func (r *Receipt) GetContractAddress() string

GetContractAddress returns the contract address

func (*Receipt) GetErrorMessage

func (r *Receipt) GetErrorMessage() string

ParseErrorMessage gets unusual output value from Receipt

func (*Receipt) GetFrom

func (r *Receipt) GetFrom() string

GetFrom returns the transaction sender address

func (*Receipt) GetGasUsed

func (r *Receipt) GetGasUsed() string

GetGasUsed returns the used gas

func (*Receipt) GetHash

func (r *Receipt) GetHash() string

func (*Receipt) GetInput

func (r *Receipt) GetInput() string

GetInput returns the transaction content

func (*Receipt) GetOutput

func (r *Receipt) GetOutput() string

GetOutput returns the transaction output

func (*Receipt) GetReceiptProof

func (r *Receipt) GetReceiptProof() []string

GetTransactionIndex returns the transaction index string

func (*Receipt) GetStatus

func (r *Receipt) GetStatus() int

GetStatus returns the transaction status

func (*Receipt) GetTo

func (r *Receipt) GetTo() string

GetTo returns the transaction receiver address

func (*Receipt) GetTransactionHash

func (r *Receipt) GetTransactionHash() string

GetTransactionHash returns the transaction hash string

func (*Receipt) GetVersion

func (r *Receipt) GetVersion() uint64

GetTo returns the transaction receiver address

func (*Receipt) String

func (r *Receipt) String() string

String returns the string representation of Receipt struct.

type Signature

type Signature struct {
	SealerIndex uint64 `json:"sealerIndex"`
	Signature   string `json:"signature"`
}

func (*Signature) GetSealerIndex

func (s *Signature) GetSealerIndex() uint64

GetIndex returns the signature index string

func (*Signature) GetSignature

func (s *Signature) GetSignature() string

GetSignature returns signature string

type Signer

type Signer interface {
	// Sender returns the sender address of the transaction.
	Sender(tx *Transaction) (common.Address, error)
	// SignatureValues returns the raw R, S, V values corresponding to the
	// given signature.
	SignatureValues(tx *Transaction, sig []byte) (r, s, v *big.Int, err error)
	// Hash returns the hash to be signed.
	Hash(tx *Transaction) common.Hash
	// Equal returns true if the given signer is the same as the receiver.
	Equal(Signer) bool
}

Signer encapsulates transaction signature handling. Note that this interface is not a stable API and may change at any time to accommodate new protocol rules.

type SyncStatus

type SyncStatus struct {
	BlockNumber        int    `json:"blockNumber"`
	GenesisHash        string `json:"genesisHash"`
	IsSyncing          bool   `json:"isSyncing"`
	KnownHighestNumber int    `json:"knownHighestNumber"`
	KnownLatestHash    string `json:"knownLatestHash"`
	LatestHash         string `json:"latestHash"`
	NodeId             string `json:"nodeId"`
	Peers              []Peer `json:"peers"`
	ProtocolId         int    `json:"protocolId"`
	TxPoolSize         string `json:"txPoolSize"`
}

func (*SyncStatus) GetBlockNumber

func (s *SyncStatus) GetBlockNumber() int

GetBlockNumber returns the block number int

func (*SyncStatus) GetGenesisHash

func (s *SyncStatus) GetGenesisHash() string

GetGenesisHash returns the original block hash string

func (*SyncStatus) GetIsSyncing

func (s *SyncStatus) GetIsSyncing() bool

GetIsSyncing returns sync status

func (*SyncStatus) GetKnownHighestNumber

func (s *SyncStatus) GetKnownHighestNumber() int

GetKnownHighestNumber returns the known highest number int

func (*SyncStatus) GetKnownLatestHash

func (s *SyncStatus) GetKnownLatestHash() string

GetKnownLatestHash returns the known latest Hash string

func (*SyncStatus) GetLatestHash

func (s *SyncStatus) GetLatestHash() string

GetLatestHash returns the last hash string

func (*SyncStatus) GetNodeId

func (s *SyncStatus) GetNodeId() string

GetNodeId returns the node id string

func (*SyncStatus) GetPeers

func (s *SyncStatus) GetPeers() []Peer

GetPeers returns the peers

func (*SyncStatus) GetProtocolId

func (s *SyncStatus) GetProtocolId() int

GetProtocolId returns the transaction protocol id int

func (*SyncStatus) GetTxPoolSize

func (s *SyncStatus) GetTxPoolSize() string

GetTxPoolSize returns the transaction pool size

type SystemConfig

type SystemConfig struct {
	BlockNumber int    `json:"blockNumber"`
	Value       string `json:"value"`
}

func (*SystemConfig) GetBlockNumber

func (s *SystemConfig) GetBlockNumber() int

GetBlockNumber returns the block number

func (*SystemConfig) GetValue

func (s *SystemConfig) GetValue() string

GetValue returns the value

type Transaction

type Transaction struct {
	Data       TransactionData
	DataHash   *common.Hash    `json:"dataHash" tars:"dataHash,tag:2,require:false"`
	Signature  []byte          `json:"signature" tars:"signature,tag:3,require:false"`
	ImportTime int64           `json:"importTime" tars:"importTime,tag:4,require:false"`
	Attribute  int32           `json:"attribute" tars:"attribute,tag:5,require:false"`
	Sender     *common.Address `json:"sender" tars:"sender,tag:7,require:false"`
	ExtraData  string          `json:"extraData" tars:"extraData,tag:8,require:false"`
	SMCrypto   bool            `json:"-"`
	// Data       TarsTransactionData `json:"data" tars:"data,tag:1,require:false"`
	// Signature values
	V *big.Int `json:"v"`
	R *big.Int `json:"r"`
	S *big.Int `json:"s"`
}

func NewSimpleTx

func NewSimpleTx(to *common.Address, data []byte, abi, nonce, extraData string, smcrypto bool) *Transaction

NewSimpleTx creates a contract transaction, if nonce is empty string, the nonce will be auto generated

func NewTransaction

func NewTransaction(to common.Address, amount *big.Int, gasLimit int64, gasPrice *big.Int, blockLimit int64, data []byte, nonce, chainId, groupId, extraData string, smcrypto bool) *Transaction

NewTransaction returns a new transaction

func SignTx

func SignTx(tx *Transaction, s Signer, prv *ecdsa.PrivateKey) (*Transaction, error)

SignTx signs the transaction using the given signer and private key

func (*Transaction) ABI

func (tx *Transaction) ABI() string

func (*Transaction) Bytes

func (st *Transaction) Bytes() []byte

func (*Transaction) CheckNonce

func (tx *Transaction) CheckNonce() bool

func (*Transaction) Cost

func (tx *Transaction) Cost() *big.Int

Cost returns amount + gasprice * gaslimit.

func (*Transaction) GasPrice

func (tx *Transaction) GasPrice() *big.Int

func (*Transaction) Hash

func (tx *Transaction) Hash() common.Hash

Hash hashes the RLP encoding of tx. It uniquely identifies the transaction.

func (*Transaction) Input

func (tx *Transaction) Input() []byte

func (*Transaction) Nonce

func (tx *Transaction) Nonce() string

func (*Transaction) Protected

func (tx *Transaction) Protected() bool

Protected returns whether the transaction is protected from replay protection.

func (*Transaction) ReadBlock

func (st *Transaction) ReadBlock(readBuf *codec.Reader, tag byte, require bool) error

ReadBlock reads struct from the given tag , require or optional.

func (*Transaction) ReadFrom

func (st *Transaction) ReadFrom(readBuf *codec.Reader) error

ReadFrom reads from readBuf and put into struct.

func (*Transaction) ResetDefault

func (st *Transaction) ResetDefault()

func (*Transaction) SignatureValues

func (tx *Transaction) SignatureValues() (v, r, s *big.Int)

SignatureValues returns the V, R, S signature values of the transaction. The return values should not be modified by the caller.

func (*Transaction) To

func (tx *Transaction) To() *common.Address

To returns the recipient address of the transaction. It returns nil if the transaction is a contract creation.

func (*Transaction) Value

func (tx *Transaction) Value() *big.Int

func (*Transaction) WithSM2Signature

func (tx *Transaction) WithSM2Signature(signer Signer, sig []byte) (*Transaction, error)

WithSM2Signature returns a new transaction with the given signature. This signature needs to be in the [R || S || V] format where V is 0 or 1.

func (*Transaction) WithSignature

func (tx *Transaction) WithSignature(signer Signer, sig []byte) (*Transaction, error)

WithSignature returns a new transaction with the given signature. This signature needs to be in the [R || S || V] format where V is 0 or 1.

func (*Transaction) WriteBlock

func (st *Transaction) WriteBlock(buf *codec.Buffer, tag byte) error

WriteBlock encode struct

func (*Transaction) WriteTo

func (st *Transaction) WriteTo(buf *codec.Buffer) (err error)

WriteTo encode struct to buffer

type TransactionCount

type TransactionCount struct {
	BlockNumber int64 `json:"blockNumber"`
	FailedTxSum int64 `json:"failedTransactionCount"`
	TxSum       int64 `json:"transactionCount"`
}

func (*TransactionCount) GetBlockNumber

func (t *TransactionCount) GetBlockNumber() int64

GetBlockNumber returns the transaction block height string

func (*TransactionCount) GetFailedTxSum

func (t *TransactionCount) GetFailedTxSum() int64

GetFailedTxSum returns the transaction failed sum string

func (*TransactionCount) GetTxSum

func (t *TransactionCount) GetTxSum() int64

GetTxSum returns the transaction sum string

type TransactionData

type TransactionData struct {
	Version              int32           `json:"version" tars:"version,tag:1,require:false"`
	ChainID              string          `json:"chainID" tars:"chainID,tag:2,require:false"`
	GroupID              string          `json:"groupID" tars:"groupID,tag:3,require:false"`
	BlockLimit           int64           `json:"blockLimit" tars:"blockLimit,tag:4,require:false"`
	Nonce                string          `json:"nonce" tars:"nonce,tag:5,require:false"`
	To                   *common.Address `json:"to" tars:"to,tag:6,require:false"`
	Input                []byte          `json:"input" tars:"input,tag:7,require:false"`
	Abi                  string          `json:"abi" tars:"abi,tag:8,require:false"`
	Value                *big.Int        `json:"value" tars:"value,tag:9,require:false"`
	GasPrice             *big.Int        `json:"gasPrice" tars:"gasPrice,tag:10,require:false"`
	GasLimit             int64           `json:"gasLimit" tars:"gasLimit,tag:11,require:false"`
	MaxFeePerGas         *big.Int        `json:"maxFeePerGas" tars:"maxFeePerGas,tag:12,require:false"`
	MaxPriorityFeePerGas *big.Int        `json:"maxPriorityFeePerGas" tars:"maxPriorityFeePerGas,tag:13,require:false"`
}

func (*TransactionData) Bytes

func (st *TransactionData) Bytes() []byte

func (*TransactionData) ReadBlock

func (st *TransactionData) ReadBlock(readBuf *codec.Reader, tag byte, require bool) error

ReadBlock reads struct from the given tag , require or optional.

func (*TransactionData) ReadFrom

func (st *TransactionData) ReadFrom(readBuf *codec.Reader) error

ReadFrom reads from readBuf and put into struct.

func (*TransactionData) ResetDefault

func (st *TransactionData) ResetDefault()

func (*TransactionData) WriteBlock

func (st *TransactionData) WriteBlock(buf *codec.Buffer, tag byte) error

WriteBlock encode struct

func (*TransactionData) WriteTo

func (st *TransactionData) WriteTo(buf *codec.Buffer) (err error)

WriteTo encode struct to buffer

type TransactionDetail

type TransactionDetail struct {
	Abi              string   `json:"abi"`
	BlockLimit       int64    `json:"blockLimit"`
	ChainID          string   `json:"chainID"`
	From             string   `json:"from"`
	GroupID          string   `json:"groupID"`
	Hash             string   `json:"hash"`
	ImportTime       int64    `json:"importTime"`
	Input            string   `json:"input"`
	Nonce            string   `json:"nonce"`
	Signature        string   `json:"signature"`
	To               string   `json:"to"`
	TransactionProof []string `json:"txProof"`
	Version          uint64   `json:"version"`
}

func (*TransactionDetail) GetAbi

func (t *TransactionDetail) GetAbi() string

func (*TransactionDetail) GetBlockLimit

func (t *TransactionDetail) GetBlockLimit() int64

func (*TransactionDetail) GetChainID

func (t *TransactionDetail) GetChainID() string

func (*TransactionDetail) GetFrom

func (t *TransactionDetail) GetFrom() string

GetValue returns the transaction pfrom address string

func (*TransactionDetail) GetGroupID

func (t *TransactionDetail) GetGroupID() string

func (*TransactionDetail) GetHash

func (t *TransactionDetail) GetHash() string

GetValue returns the transaction hash string

func (*TransactionDetail) GetImportTime

func (t *TransactionDetail) GetImportTime() int64

func (*TransactionDetail) GetInput

func (t *TransactionDetail) GetInput() string

GetValue returns the transaction input string

func (*TransactionDetail) GetNonce

func (t *TransactionDetail) GetNonce() string

GetValue returns the transaction once string

func (*TransactionDetail) GetSignature

func (t *TransactionDetail) GetSignature() string

func (*TransactionDetail) GetTo

func (t *TransactionDetail) GetTo() string

GetValue returns the transaction to address string

func (*TransactionDetail) GetVersion

func (t *TransactionDetail) GetVersion() uint64

type Transactions

type Transactions []*Transaction

Transactions is a Transaction slice type for basic sorting.

func TxDifference

func TxDifference(a, b Transactions) Transactions

TxDifference returns a new set which is the difference between a and b.

func (Transactions) Len

func (s Transactions) Len() int

Len returns the length of s.

func (Transactions) Swap

func (s Transactions) Swap(i, j int)

Swap swaps the i'th and the j'th element in s.

Jump to

Keyboard shortcuts

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