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 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 ¶
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.