Documentation
¶
Index ¶
- Constants
- Variables
- type Block
- func (B *Block) GetGasLimit() string
- func (B *Block) GetGasUsed() string
- func (B *Block) GetHash() string
- func (B *Block) GetNumber() uint64
- func (B *Block) GetParentInfo() []ParentInfo
- func (B *Block) GetReceiptsRoot() string
- func (B *Block) GetSealer() uint64
- func (B *Block) GetSealerList() []string
- func (B *Block) GetSignatureList() []Signature
- func (B *Block) GetTimestamp() uint64
- func (B *Block) GetTransactions() []interface{}
- func (B *Block) GetTxsRoot() string
- func (B *Block) GetVersion() uint64
- type EIP155Signer
- type EventLogParams
- type FrontierSigner
- type HomesteadSigner
- type Log
- type NewLog
- type ParentInfo
- type Peer
- type Receipt
- func (r *Receipt) GetBlockNumber() int
- func (r *Receipt) GetContractAddress() string
- func (r *Receipt) GetErrorMessage() string
- func (r *Receipt) GetFrom() string
- func (r *Receipt) GetGasUsed() string
- func (r *Receipt) GetHash() string
- func (r *Receipt) GetInput() string
- func (r *Receipt) GetOutput() string
- func (r *Receipt) GetReceiptProof() []string
- func (r *Receipt) GetStatus() int
- func (r *Receipt) GetTo() string
- func (r *Receipt) GetTransactionHash() string
- func (r *Receipt) GetVersion() uint64
- func (r *Receipt) String() string
- type Signature
- type Signer
- type SyncStatus
- func (s *SyncStatus) GetBlockNumber() int
- func (s *SyncStatus) GetGenesisHash() string
- func (s *SyncStatus) GetIsSyncing() bool
- func (s *SyncStatus) GetKnownHighestNumber() int
- func (s *SyncStatus) GetKnownLatestHash() string
- func (s *SyncStatus) GetLatestHash() string
- func (s *SyncStatus) GetNodeId() string
- func (s *SyncStatus) GetPeers() []Peer
- func (s *SyncStatus) GetProtocolId() int
- func (s *SyncStatus) GetTxPoolSize() string
- type SystemConfig
- type Transaction
- func NewSimpleTx(to *common.Address, data []byte, abi, nonce, extraData string, smcrypto bool) *Transaction
- func NewTransaction(to *common.Address, amount *big.Int, gasLimit int64, gasPrice *big.Int, ...) *Transaction
- func SignTx(tx *Transaction, s Signer, prv *ecdsa.PrivateKey) (*Transaction, error)
- func (tx *Transaction) ABI() string
- func (st *Transaction) Bytes() []byte
- func (tx *Transaction) CheckNonce() bool
- func (tx *Transaction) Cost() *big.Int
- func (tx *Transaction) GasPrice() *big.Int
- func (tx *Transaction) Hash() common.Hash
- func (tx *Transaction) Input() []byte
- func (tx *Transaction) Nonce() string
- func (tx *Transaction) Protected() bool
- func (st *Transaction) ReadBlock(readBuf *codec.Reader, tag byte, require bool) error
- func (st *Transaction) ReadFrom(readBuf *codec.Reader) error
- func (st *Transaction) ResetDefault()
- func (tx *Transaction) SignatureValues() (v, r, s *big.Int)
- func (tx *Transaction) To() *common.Address
- func (tx *Transaction) Value() *big.Int
- func (tx *Transaction) WithSM2Signature(signer Signer, sig []byte) (*Transaction, error)
- func (tx *Transaction) WithSignature(signer Signer, sig []byte) (*Transaction, error)
- func (st *Transaction) WriteBlock(buf *codec.Buffer, tag byte) error
- func (st *Transaction) WriteTo(buf *codec.Buffer) (err error)
- type TransactionCount
- type TransactionData
- func (st *TransactionData) Bytes() []byte
- func (st *TransactionData) ReadBlock(readBuf *codec.Reader, tag byte, require bool) error
- func (st *TransactionData) ReadFrom(readBuf *codec.Reader) error
- func (st *TransactionData) ResetDefault()
- func (st *TransactionData) WriteBlock(buf *codec.Buffer, tag byte) error
- func (st *TransactionData) WriteTo(buf *codec.Buffer) (err error)
- type TransactionDetail
- func (t *TransactionDetail) GetAbi() string
- func (t *TransactionDetail) GetBlockLimit() int64
- func (t *TransactionDetail) GetChainID() string
- func (t *TransactionDetail) GetFrom() string
- func (t *TransactionDetail) GetGroupID() string
- func (t *TransactionDetail) GetHash() string
- func (t *TransactionDetail) GetImportTime() int64
- func (t *TransactionDetail) GetInput() string
- func (t *TransactionDetail) GetNonce() string
- func (t *TransactionDetail) GetSignature() string
- func (t *TransactionDetail) GetTo() string
- func (t *TransactionDetail) GetVersion() uint64
- type Transactions
Constants ¶
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 ¶
var (
ErrInvalidChainID = errors.New("invalid chain id for signer")
)
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 ¶
GetGasLimit returns the block max gas limit string
func (*Block) GetGasUsed ¶
GetGasUsed returns the block gas used string
func (*Block) GetParentInfo ¶
func (B *Block) GetParentInfo() []ParentInfo
func (*Block) GetReceiptsRoot ¶
GetReceiptsRoot returns the block receipts root string
func (*Block) GetSealerList ¶
GetSealerList returns the sealer node list
func (*Block) GetSignatureList ¶
GetSignatureList returns the block signature list
func (*Block) GetTimestamp ¶
GetTimestamp returns the block timestamp uint64
func (*Block) GetTransactions ¶
func (B *Block) GetTransactions() []interface{}
GetTransactions returns the blcok transcation list
func (*Block) GetTxsRoot ¶
func (*Block) GetVersion ¶
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 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 ¶
GetBlockNumber returns the laster block number int
func (*Peer) GetGenesisHash ¶
GetGenesisHash returns the original block hash string
func (*Peer) GetLatestHash ¶
GetLatestHash returns the laster block hash 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 ¶
GetBlockNumber returns the block number string
func (*Receipt) GetContractAddress ¶
GetContractAddress returns the contract address
func (*Receipt) GetErrorMessage ¶
ParseErrorMessage gets unusual output value from Receipt
func (*Receipt) GetReceiptProof ¶
GetTransactionIndex returns the transaction index string
func (*Receipt) GetTransactionHash ¶
GetTransactionHash returns the transaction hash string
func (*Receipt) GetVersion ¶
GetTo returns the transaction receiver address
type Signature ¶
type Signature struct {
SealerIndex uint64 `json:"sealerIndex"`
Signature string `json:"signature"`
}
func (*Signature) GetSealerIndex ¶
GetIndex returns the signature index string
func (*Signature) GetSignature ¶
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) 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 ¶
func (*SystemConfig) GetBlockNumber ¶
func (s *SystemConfig) GetBlockNumber() int
GetBlockNumber returns the block number
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) 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
type TransactionCount ¶
type TransactionCount struct {
BlockNumber uint64 `json:"blockNumber"`
FailedTxSum uint64 `json:"failedTransactionCount"`
TxSum uint64 `json:"transactionCount"`
}
func (*TransactionCount) GetBlockNumber ¶
func (t *TransactionCount) GetBlockNumber() uint64
GetBlockNumber returns the transaction block height string
func (*TransactionCount) GetFailedTxSum ¶
func (t *TransactionCount) GetFailedTxSum() uint64
GetFailedTxSum returns the transaction failed sum string
func (*TransactionCount) GetTxSum ¶
func (t *TransactionCount) GetTxSum() uint64
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 ¶
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
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) Swap ¶
func (s Transactions) Swap(i, j int)
Swap swaps the i'th and the j'th element in s.