eth

package
v0.0.0-...-fae8f5a Latest Latest
Warning

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

Go to latest
Published: May 22, 2023 License: AGPL-3.0 Imports: 29 Imported by: 0

Documentation

Overview

Package eth is a generated protocol buffer package.

It is generated from these files:

bchain/coins/eth/ethtx.proto

It has these top-level messages:

ProtoCompleteTransaction

Index

Constants

View Source
const (
	TxStatusUnknown = TxStatus(iota - 2)
	TxStatusPending
	TxStatusFailure
	TxStatusOK
)

statuses of transaction

View Source
const ErrorTy byte = 255
View Source
const EtherAmountDecimalPoint = 18

EtherAmountDecimalPoint defines number of decimal points in Ether amounts

View Source
const EthereumTypeAddressDescriptorLen = 20

EthereumTypeAddressDescriptorLen - the AddressDescriptor of EthereumType has fixed length

View Source
const EthereumTypeTxidLen = 32

EthereumTypeTxidLen - the length of Txid

Variables

View Source
var ProcessInternalTransactions bool

ProcessInternalTransactions specifies if internal transactions are processed

Functions

func EIP55Address

func EIP55Address(addrDesc bchain.AddressDescriptor) string

EIP55Address returns an EIP55-compliant hex string representation of the address

func EIP55AddressFromAddress

func EIP55AddressFromAddress(address string) string

EIP55AddressFromAddress returns an EIP55-compliant hex string representation of the address

func GetHeightFromTx

func GetHeightFromTx(tx *bchain.Tx) (uint32, error)

GetHeightFromTx returns ethereum specific data from bchain.Tx

func GetSignatureFromData

func GetSignatureFromData(data string) uint32

func GetStringFromMap

func GetStringFromMap(p string, params map[string]interface{}) (string, bool)

GetStringFromMap attempts to return the value for a specific key in a map as a string if valid, otherwise returns an empty string with false indicating there was no key found, or the value was not a string

func NewEthereumRPC

func NewEthereumRPC(config json.RawMessage, pushHandler func(bchain.NotificationType)) (bchain.BlockChain, error)

NewEthereumRPC returns new EthRPC instance.

func PackInternalTransactionError

func PackInternalTransactionError(e string) string

PackInternalTransactionError packs common error messages to single byte to save DB space

func ParseErrorFromOutput

func ParseErrorFromOutput(output string) string

ParseErrorFromOutput takes output field from internal transaction data and extracts an error message from it the output must have errorOutputSignature to be parsed

func ParseInputData

func ParseInputData(signatures *[]bchain.FourByteSignature, data string) *bchain.EthereumParsedInputData

ParseInputData tries to parse transaction input data from known FourByteSignatures as there may be multiple signatures for the same four bytes, it tries to match the input to the known parameters it does not parse tuples for now

func UnpackInternalTransactionError

func UnpackInternalTransactionError(data []byte) string

UnpackInternalTransactionError unpacks common error messages packed by PackInternalTransactionError

Types

type Configuration

type Configuration struct {
	CoinName                        string `json:"coin_name"`
	CoinShortcut                    string `json:"coin_shortcut"`
	RPCURL                          string `json:"rpc_url"`
	RPCTimeout                      int    `json:"rpc_timeout"`
	BlockAddressesToKeep            int    `json:"block_addresses_to_keep"`
	AddressAliases                  bool   `json:"address_aliases,omitempty"`
	MempoolTxTimeoutHours           int    `json:"mempoolTxTimeoutHours"`
	QueryBackendOnMempoolResync     bool   `json:"queryBackendOnMempoolResync"`
	ProcessInternalTransactions     bool   `json:"processInternalTransactions"`
	ProcessZeroInternalTransactions bool   `json:"processZeroInternalTransactions"`
	ConsensusNodeVersionURL         string `json:"consensusNodeVersion"`
}

Configuration represents json config file

type EthereumClient

type EthereumClient struct {
	*ethclient.Client
}

EthereumClient wraps a client to implement the EVMClient interface

func (*EthereumClient) BalanceAt

func (c *EthereumClient) BalanceAt(ctx context.Context, addrDesc bchain.AddressDescriptor, blockNumber *big.Int) (*big.Int, error)

BalanceAt returns the balance for the given account at a specific block, or latest known block if no block number is provided

func (*EthereumClient) EstimateGas

func (c *EthereumClient) EstimateGas(ctx context.Context, msg interface{}) (uint64, error)

EstimateGas returns the current estimated gas cost for executing a transaction

func (*EthereumClient) HeaderByNumber

func (c *EthereumClient) HeaderByNumber(ctx context.Context, number *big.Int) (bchain.EVMHeader, error)

HeaderByNumber returns a block header that implements the EVMHeader interface

func (*EthereumClient) NonceAt

func (c *EthereumClient) NonceAt(ctx context.Context, addrDesc bchain.AddressDescriptor, blockNumber *big.Int) (uint64, error)

NonceAt returns the nonce for the given account at a specific block, or latest known block if no block number is provided

type EthereumClientSubscription

type EthereumClientSubscription struct {
	*rpc.ClientSubscription
}

EthereumClientSubscription wraps a client subcription to implement the EVMClientSubscription interface

type EthereumHash

type EthereumHash struct {
	common.Hash
}

EthereumHash wraps a transaction hash to implement the EVMHash interface

type EthereumHeader

type EthereumHeader struct {
	*types.Header
}

EthereumHeader wraps a block header to implement the EVMHeader interface

func (*EthereumHeader) Difficulty

func (h *EthereumHeader) Difficulty() *big.Int

Difficulty returns the block difficulty

func (*EthereumHeader) Hash

func (h *EthereumHeader) Hash() string

Hash returns the block hash as a hex string

func (*EthereumHeader) Number

func (h *EthereumHeader) Number() *big.Int

Number returns the block number

type EthereumNewBlock

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

EthereumNewBlock wraps a block header channel to implement the EVMNewBlockSubscriber interface

func NewEthereumNewBlock

func NewEthereumNewBlock() *EthereumNewBlock

NewEthereumNewBlock returns an initialized EthereumNewBlock struct

func (*EthereumNewBlock) Channel

func (s *EthereumNewBlock) Channel() interface{}

Channel returns the underlying channel as an empty interface

func (*EthereumNewBlock) Close

func (s *EthereumNewBlock) Close()

Close the underlying channel

func (*EthereumNewBlock) Read

func (s *EthereumNewBlock) Read() (bchain.EVMHeader, bool)

Read from the underlying channel and return a block header that implements the EVMHeader interface

type EthereumNewTx

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

EthereumNewTx wraps a transaction hash channel to implement the EVMNewTxSubscriber interface

func NewEthereumNewTx

func NewEthereumNewTx() *EthereumNewTx

NewEthereumNewTx returns an initialized EthereumNewTx struct

func (*EthereumNewTx) Channel

func (s *EthereumNewTx) Channel() interface{}

Channel returns the underlying channel as an empty interface

func (*EthereumNewTx) Close

func (s *EthereumNewTx) Close()

Close the underlying channel

func (*EthereumNewTx) Read

func (s *EthereumNewTx) Read() (bchain.EVMHash, bool)

Read from the underlying channel and return a transaction hash that implements the EVMHash interface

type EthereumParser

type EthereumParser struct {
	*bchain.BaseParser
}

EthereumParser handle

func NewEthereumParser

func NewEthereumParser(b int, addressAliases bool) *EthereumParser

NewEthereumParser returns new EthereumParser instance

func (*EthereumParser) EthereumTypeGetTokenTransfersFromTx

func (p *EthereumParser) EthereumTypeGetTokenTransfersFromTx(tx *bchain.Tx) (bchain.TokenTransfers, error)

EthereumTypeGetTokenTransfersFromTx returns contract transfers from bchain.Tx

func (*EthereumParser) FormatAddressAlias

func (p *EthereumParser) FormatAddressAlias(address string, name string) string

FormatAddressAlias adds .eth to a name alias

func (*EthereumParser) GetAddrDescFromAddress

func (p *EthereumParser) GetAddrDescFromAddress(address string) (bchain.AddressDescriptor, error)

GetAddrDescFromAddress returns internal address representation of given address

func (*EthereumParser) GetAddrDescFromVout

func (p *EthereumParser) GetAddrDescFromVout(output *bchain.Vout) (bchain.AddressDescriptor, error)

GetAddrDescFromVout returns internal address representation of given transaction output

func (*EthereumParser) GetAddressesFromAddrDesc

func (p *EthereumParser) GetAddressesFromAddrDesc(addrDesc bchain.AddressDescriptor) ([]string, bool, error)

GetAddressesFromAddrDesc returns addresses for given address descriptor with flag if the addresses are searchable

func (*EthereumParser) GetChainType

func (p *EthereumParser) GetChainType() bchain.ChainType

GetChainType returns EthereumType

func (*EthereumParser) GetScriptFromAddrDesc

func (p *EthereumParser) GetScriptFromAddrDesc(addrDesc bchain.AddressDescriptor) ([]byte, error)

GetScriptFromAddrDesc returns output script for given address descriptor

func (*EthereumParser) PackBlockHash

func (p *EthereumParser) PackBlockHash(hash string) ([]byte, error)

PackBlockHash packs block hash to byte array

func (*EthereumParser) PackTx

func (p *EthereumParser) PackTx(tx *bchain.Tx, height uint32, blockTime int64) ([]byte, error)

PackTx packs transaction to byte array completeTransaction.InternalData are not packed, they are stored in a different table

func (*EthereumParser) PackTxid

func (p *EthereumParser) PackTxid(txid string) ([]byte, error)

PackTxid packs txid to byte array

func (*EthereumParser) PackedTxidLen

func (p *EthereumParser) PackedTxidLen() int

PackedTxidLen returns length in bytes of packed txid

func (*EthereumParser) UnpackBlockHash

func (p *EthereumParser) UnpackBlockHash(buf []byte) (string, error)

UnpackBlockHash unpacks byte array to block hash

func (*EthereumParser) UnpackTx

func (p *EthereumParser) UnpackTx(buf []byte) (*bchain.Tx, uint32, error)

UnpackTx unpacks transaction from byte array

func (*EthereumParser) UnpackTxid

func (p *EthereumParser) UnpackTxid(buf []byte) (string, error)

UnpackTxid unpacks byte array to txid

type EthereumRPC

type EthereumRPC struct {
	*bchain.BaseChain
	Client         bchain.EVMClient
	RPC            bchain.EVMRPCClient
	MainNetChainID Network
	Timeout        time.Duration
	Parser         *EthereumParser
	PushHandler    func(bchain.NotificationType)
	OpenRPC        func(string) (bchain.EVMRPCClient, bchain.EVMClient, error)
	Mempool        *bchain.MempoolEthereumType

	NewBlock bchain.EVMNewBlockSubscriber

	NewTx bchain.EVMNewTxSubscriber

	ChainConfig *Configuration
	// contains filtered or unexported fields
}

EthereumRPC is an interface to JSON-RPC eth service.

func (*EthereumRPC) CreateMempool

func (b *EthereumRPC) CreateMempool(chain bchain.BlockChain) (bchain.Mempool, error)

CreateMempool creates mempool if not already created, however does not initialize it

func (*EthereumRPC) EstimateFee

func (b *EthereumRPC) EstimateFee(blocks int) (big.Int, error)

EstimateFee returns fee estimation

func (*EthereumRPC) EstimateSmartFee

func (b *EthereumRPC) EstimateSmartFee(blocks int, conservative bool) (big.Int, error)

EstimateSmartFee returns fee estimation

func (*EthereumRPC) EthereumTypeEstimateGas

func (b *EthereumRPC) EthereumTypeEstimateGas(params map[string]interface{}) (uint64, error)

EthereumTypeEstimateGas returns estimation of gas consumption for given transaction parameters

func (*EthereumRPC) EthereumTypeGetBalance

func (b *EthereumRPC) EthereumTypeGetBalance(addrDesc bchain.AddressDescriptor) (*big.Int, error)

EthereumTypeGetBalance returns current balance of an address

func (*EthereumRPC) EthereumTypeGetErc20ContractBalance

func (b *EthereumRPC) EthereumTypeGetErc20ContractBalance(addrDesc, contractDesc bchain.AddressDescriptor) (*big.Int, error)

EthereumTypeGetErc20ContractBalance returns balance of ERC20 contract for given address

func (*EthereumRPC) EthereumTypeGetNonce

func (b *EthereumRPC) EthereumTypeGetNonce(addrDesc bchain.AddressDescriptor) (uint64, error)

EthereumTypeGetNonce returns current balance of an address

func (*EthereumRPC) GetBestBlockHash

func (b *EthereumRPC) GetBestBlockHash() (string, error)

GetBestBlockHash returns hash of the tip of the best-block-chain

func (*EthereumRPC) GetBestBlockHeight

func (b *EthereumRPC) GetBestBlockHeight() (uint32, error)

GetBestBlockHeight returns height of the tip of the best-block-chain

func (*EthereumRPC) GetBlock

func (b *EthereumRPC) GetBlock(hash string, height uint32) (*bchain.Block, error)

GetBlock returns block with given hash or height, hash has precedence if both passed

func (*EthereumRPC) GetBlockHash

func (b *EthereumRPC) GetBlockHash(height uint32) (string, error)

GetBlockHash returns hash of block in best-block-chain at given height

func (*EthereumRPC) GetBlockHeader

func (b *EthereumRPC) GetBlockHeader(hash string) (*bchain.BlockHeader, error)

GetBlockHeader returns header of block with given hash

func (*EthereumRPC) GetBlockInfo

func (b *EthereumRPC) GetBlockInfo(hash string) (*bchain.BlockInfo, error)

GetBlockInfo returns extended header (more info than in bchain.BlockHeader) with a list of txids

func (*EthereumRPC) GetChainInfo

func (b *EthereumRPC) GetChainInfo() (*bchain.ChainInfo, error)

GetChainInfo returns information about the connected backend

func (*EthereumRPC) GetChainParser

func (b *EthereumRPC) GetChainParser() bchain.BlockChainParser

GetChainParser returns ethereum BlockChainParser

func (*EthereumRPC) GetCoinName

func (b *EthereumRPC) GetCoinName() string

GetCoinName returns coin name

func (*EthereumRPC) GetContractInfo

func (b *EthereumRPC) GetContractInfo(contractDesc bchain.AddressDescriptor) (*bchain.ContractInfo, error)

GetContractInfo returns information about a contract

func (*EthereumRPC) GetMempoolTransactions

func (b *EthereumRPC) GetMempoolTransactions() ([]string, error)

GetMempoolTransactions returns transactions in mempool

func (*EthereumRPC) GetSubversion

func (b *EthereumRPC) GetSubversion() string

GetSubversion returns empty string, ethereum does not have subversion

func (*EthereumRPC) GetTokenURI

func (b *EthereumRPC) GetTokenURI(contractDesc bchain.AddressDescriptor, tokenID *big.Int) (string, error)

GetContractInfo returns URI of non fungible or multi token defined by token id

func (*EthereumRPC) GetTransaction

func (b *EthereumRPC) GetTransaction(txid string) (*bchain.Tx, error)

GetTransaction returns a transaction by the transaction ID.

func (*EthereumRPC) GetTransactionForMempool

func (b *EthereumRPC) GetTransactionForMempool(txid string) (*bchain.Tx, error)

GetTransactionForMempool returns a transaction by the transaction ID. It could be optimized for mempool, i.e. without block time and confirmations

func (*EthereumRPC) GetTransactionSpecific

func (b *EthereumRPC) GetTransactionSpecific(tx *bchain.Tx) (json.RawMessage, error)

GetTransactionSpecific returns json as returned by backend, with all coin specific data

func (*EthereumRPC) Initialize

func (b *EthereumRPC) Initialize() error

Initialize initializes ethereum rpc interface

func (*EthereumRPC) InitializeMempool

func (b *EthereumRPC) InitializeMempool(addrDescForOutpoint bchain.AddrDescForOutpointFunc, onNewTxAddr bchain.OnNewTxAddrFunc, onNewTx bchain.OnNewTxFunc) error

InitializeMempool creates subscriptions to newHeads and newPendingTransactions

func (*EthereumRPC) SendRawTransaction

func (b *EthereumRPC) SendRawTransaction(hex string) (string, error)

SendRawTransaction sends raw transaction

func (*EthereumRPC) Shutdown

func (b *EthereumRPC) Shutdown(ctx context.Context) error

Shutdown cleans up rpc interface to ethereum

func (*EthereumRPC) UpdateBestHeader

func (b *EthereumRPC) UpdateBestHeader(h bchain.EVMHeader)

UpdateBestHeader keeps track of the latest block header confirmed on chain

type EthereumRPCClient

type EthereumRPCClient struct {
	*rpc.Client
}

EthereumRPCClient wraps an rpc client to implement the EVMRPCClient interface

func (*EthereumRPCClient) EthSubscribe

func (c *EthereumRPCClient) EthSubscribe(ctx context.Context, channel interface{}, args ...interface{}) (bchain.EVMClientSubscription, error)

EthSubscribe subscribes to events and returns a client subscription that implements the EVMClientSubscription interface

type EthereumTxData

type EthereumTxData struct {
	Status   TxStatus `json:"status"` // 1 OK, 0 Fail, -1 pending, -2 unknown
	Nonce    uint64   `json:"nonce"`
	GasLimit *big.Int `json:"gaslimit"`
	GasUsed  *big.Int `json:"gasused"`
	GasPrice *big.Int `json:"gasprice"`
	Data     string   `json:"data"`
}

EthereumTxData contains ethereum specific transaction data

func GetEthereumTxData

func GetEthereumTxData(tx *bchain.Tx) *EthereumTxData

GetEthereumTxData returns EthereumTxData from bchain.Tx

func GetEthereumTxDataFromSpecificData

func GetEthereumTxDataFromSpecificData(coinSpecificData interface{}) *EthereumTxData

GetEthereumTxDataFromSpecificData returns EthereumTxData from coinSpecificData

type Network

type Network uint32

Network type specifies the type of ethereum network

const (
	// MainNet is production network
	MainNet Network = 1
	// TestNet is Ropsten test network
	TestNet Network = 3
	// TestNetGoerli is Goerli test network
	TestNetGoerli Network = 5
	// TestNetSepolia is Sepolia test network
	TestNetSepolia Network = 11155111
)

type ProtoCompleteTransaction

type ProtoCompleteTransaction struct {
	BlockNumber uint32                                `protobuf:"varint,1,opt,name=BlockNumber" json:"BlockNumber,omitempty"`
	BlockTime   uint64                                `protobuf:"varint,2,opt,name=BlockTime" json:"BlockTime,omitempty"`
	Tx          *ProtoCompleteTransaction_TxType      `protobuf:"bytes,3,opt,name=Tx" json:"Tx,omitempty"`
	Receipt     *ProtoCompleteTransaction_ReceiptType `protobuf:"bytes,4,opt,name=Receipt" json:"Receipt,omitempty"`
}

func (*ProtoCompleteTransaction) Descriptor

func (*ProtoCompleteTransaction) Descriptor() ([]byte, []int)

func (*ProtoCompleteTransaction) GetBlockNumber

func (m *ProtoCompleteTransaction) GetBlockNumber() uint32

func (*ProtoCompleteTransaction) GetBlockTime

func (m *ProtoCompleteTransaction) GetBlockTime() uint64

func (*ProtoCompleteTransaction) GetReceipt

func (*ProtoCompleteTransaction) GetTx

func (*ProtoCompleteTransaction) ProtoMessage

func (*ProtoCompleteTransaction) ProtoMessage()

func (*ProtoCompleteTransaction) Reset

func (m *ProtoCompleteTransaction) Reset()

func (*ProtoCompleteTransaction) String

func (m *ProtoCompleteTransaction) String() string

type ProtoCompleteTransaction_ReceiptType

type ProtoCompleteTransaction_ReceiptType struct {
	GasUsed []byte                                          `protobuf:"bytes,1,opt,name=GasUsed,proto3" json:"GasUsed,omitempty"`
	Status  []byte                                          `protobuf:"bytes,2,opt,name=Status,proto3" json:"Status,omitempty"`
	Log     []*ProtoCompleteTransaction_ReceiptType_LogType `protobuf:"bytes,3,rep,name=Log" json:"Log,omitempty"`
}

func (*ProtoCompleteTransaction_ReceiptType) Descriptor

func (*ProtoCompleteTransaction_ReceiptType) Descriptor() ([]byte, []int)

func (*ProtoCompleteTransaction_ReceiptType) GetGasUsed

func (m *ProtoCompleteTransaction_ReceiptType) GetGasUsed() []byte

func (*ProtoCompleteTransaction_ReceiptType) GetLog

func (*ProtoCompleteTransaction_ReceiptType) GetStatus

func (m *ProtoCompleteTransaction_ReceiptType) GetStatus() []byte

func (*ProtoCompleteTransaction_ReceiptType) ProtoMessage

func (*ProtoCompleteTransaction_ReceiptType) ProtoMessage()

func (*ProtoCompleteTransaction_ReceiptType) Reset

func (*ProtoCompleteTransaction_ReceiptType) String

type ProtoCompleteTransaction_ReceiptType_LogType

type ProtoCompleteTransaction_ReceiptType_LogType struct {
	Address []byte   `protobuf:"bytes,1,opt,name=Address,proto3" json:"Address,omitempty"`
	Data    []byte   `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"`
	Topics  [][]byte `protobuf:"bytes,3,rep,name=Topics,proto3" json:"Topics,omitempty"`
}

func (*ProtoCompleteTransaction_ReceiptType_LogType) Descriptor

func (*ProtoCompleteTransaction_ReceiptType_LogType) GetAddress

func (*ProtoCompleteTransaction_ReceiptType_LogType) GetData

func (*ProtoCompleteTransaction_ReceiptType_LogType) GetTopics

func (*ProtoCompleteTransaction_ReceiptType_LogType) ProtoMessage

func (*ProtoCompleteTransaction_ReceiptType_LogType) Reset

func (*ProtoCompleteTransaction_ReceiptType_LogType) String

type ProtoCompleteTransaction_TxType

type ProtoCompleteTransaction_TxType struct {
	AccountNonce     uint64 `protobuf:"varint,1,opt,name=AccountNonce" json:"AccountNonce,omitempty"`
	GasPrice         []byte `protobuf:"bytes,2,opt,name=GasPrice,proto3" json:"GasPrice,omitempty"`
	GasLimit         uint64 `protobuf:"varint,3,opt,name=GasLimit" json:"GasLimit,omitempty"`
	Value            []byte `protobuf:"bytes,4,opt,name=Value,proto3" json:"Value,omitempty"`
	Payload          []byte `protobuf:"bytes,5,opt,name=Payload,proto3" json:"Payload,omitempty"`
	Hash             []byte `protobuf:"bytes,6,opt,name=Hash,proto3" json:"Hash,omitempty"`
	To               []byte `protobuf:"bytes,7,opt,name=To,proto3" json:"To,omitempty"`
	From             []byte `protobuf:"bytes,8,opt,name=From,proto3" json:"From,omitempty"`
	TransactionIndex uint32 `protobuf:"varint,9,opt,name=TransactionIndex" json:"TransactionIndex,omitempty"`
}

func (*ProtoCompleteTransaction_TxType) Descriptor

func (*ProtoCompleteTransaction_TxType) Descriptor() ([]byte, []int)

func (*ProtoCompleteTransaction_TxType) GetAccountNonce

func (m *ProtoCompleteTransaction_TxType) GetAccountNonce() uint64

func (*ProtoCompleteTransaction_TxType) GetFrom

func (m *ProtoCompleteTransaction_TxType) GetFrom() []byte

func (*ProtoCompleteTransaction_TxType) GetGasLimit

func (m *ProtoCompleteTransaction_TxType) GetGasLimit() uint64

func (*ProtoCompleteTransaction_TxType) GetGasPrice

func (m *ProtoCompleteTransaction_TxType) GetGasPrice() []byte

func (*ProtoCompleteTransaction_TxType) GetHash

func (m *ProtoCompleteTransaction_TxType) GetHash() []byte

func (*ProtoCompleteTransaction_TxType) GetPayload

func (m *ProtoCompleteTransaction_TxType) GetPayload() []byte

func (*ProtoCompleteTransaction_TxType) GetTo

func (*ProtoCompleteTransaction_TxType) GetTransactionIndex

func (m *ProtoCompleteTransaction_TxType) GetTransactionIndex() uint32

func (*ProtoCompleteTransaction_TxType) GetValue

func (m *ProtoCompleteTransaction_TxType) GetValue() []byte

func (*ProtoCompleteTransaction_TxType) ProtoMessage

func (*ProtoCompleteTransaction_TxType) ProtoMessage()

func (*ProtoCompleteTransaction_TxType) Reset

func (*ProtoCompleteTransaction_TxType) String

type TxStatus

type TxStatus int

TxStatus is status of transaction

Jump to

Keyboard shortcuts

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