Documentation ¶
Index ¶
- Constants
- Variables
- func Add(x, y *big.Int) *big.Int
- func BigIntToBigFloat(a *big.Int) *big.Float
- func Bool2byte(bln bool) byte
- func Byte2bool(b byte) bool
- func CloneBigInt(bigInt *big.Int) *big.Int
- func CmpBigInt(a []byte, b []byte) int
- func DecodeBytesItem(bytes []byte, val interface{}) error
- func Div(x, y *big.Int) *big.Int
- func DivFloat(x, y *big.Float) *big.Float
- func EmptyKey() []byte
- func EncodeBytesItem(val interface{}) ([]byte, error)
- func EncodeTxMatchesBatch(txMatchBatch TxMatchBatch) ([]byte, error)
- func Exp(x, y *big.Int) *big.Int
- func GetKeyFromBig(key *big.Int) []byte
- func GetKeyFromString(key string) []byte
- func GetKeyFromUint64(key uint64) []byte
- func GetOrderBookHash(baseToken common.Address, quoteToken common.Address) common.Hash
- func GetOrderHistoryKey(baseToken, quoteToken common.Address, orderId uint64) common.Hash
- func GetSegmentHash(key []byte, segment, index uint8) []byte
- func GetTradeQuantity(takerSide string, takerFeeRate *big.Int, takerBalance *big.Int, ...) (*big.Int, bool)
- func IsEqual(x, y *big.Int) bool
- func IsEqualOrGreaterThan(x, y *big.Int) bool
- func IsEqualOrSmallerThan(x, y *big.Int) bool
- func IsGreaterThan(x, y *big.Int) bool
- func IsSmallerThan(x, y *big.Int) bool
- func IsStrictlyGreaterThan(x, y *big.Int) bool
- func IsStrictlySmallerThan(x, y *big.Int) bool
- func IsZero(x *big.Int) bool
- func Max(a, b *big.Int) *big.Int
- func Mul(x, y *big.Int) *big.Int
- func Neg(x *big.Int) *big.Int
- func SetteBalance(coinbase common.Address, takerOrder, makerOrder *tomox_state.OrderItem, ...) error
- func Sub(x, y *big.Int) *big.Int
- func ToBigInt(s string) *big.Int
- func ToDecimal(value *big.Int) float64
- func ToJSON(object interface{}, args ...string) string
- func Zero() *big.Int
- type Batch
- type BatchDatabase
- func (db *BatchDatabase) Close()
- func (db *BatchDatabase) CommitBulk(sc *mgo.Session) error
- func (db *BatchDatabase) Delete(key []byte) error
- func (db *BatchDatabase) DeleteObject(hash common.Hash) error
- func (db *BatchDatabase) DeleteTradeByTxHash(txhash common.Hash)
- func (db *BatchDatabase) Get(key []byte) ([]byte, error)
- func (db *BatchDatabase) GetListOrderByHashes(hashes []string) []*tomox_state.OrderItem
- func (db *BatchDatabase) GetObject(hash common.Hash, val interface{}) (interface{}, error)
- func (db *BatchDatabase) GetOrderByTxHash(txhash common.Hash) []*tomox_state.OrderItem
- func (db *BatchDatabase) Has(key []byte) (bool, error)
- func (db *BatchDatabase) HasObject(hash common.Hash) (bool, error)
- func (db *BatchDatabase) InitBulk() *mgo.Session
- func (db *BatchDatabase) IsEmptyKey(key []byte) bool
- func (db *BatchDatabase) NewBatch() ethdb.Batch
- func (db *BatchDatabase) Put(key []byte, val []byte) error
- func (db *BatchDatabase) PutObject(hash common.Hash, val interface{}) error
- type BatchItem
- type Comparator
- type Config
- type DecodeBytes
- type EncodeToBytes
- type FormatBytes
- type MongoDatabase
- func (db *MongoDatabase) Close()
- func (db *MongoDatabase) CommitBulk(sc *mgo.Session) error
- func (db *MongoDatabase) CommitOrder(o *tomox_state.OrderItem) error
- func (db *MongoDatabase) CommitTrade(t *Trade) error
- func (db *MongoDatabase) Delete(key []byte) error
- func (db *MongoDatabase) DeleteObject(hash common.Hash) error
- func (db *MongoDatabase) DeleteTradeByTxHash(txhash common.Hash)
- func (db *MongoDatabase) Get(key []byte) ([]byte, error)
- func (db *MongoDatabase) GetListOrderByHashes(hashes []string) []*tomox_state.OrderItem
- func (db *MongoDatabase) GetObject(hash common.Hash, val interface{}) (interface{}, error)
- func (db *MongoDatabase) GetOrderByTxHash(txhash common.Hash) []*tomox_state.OrderItem
- func (db *MongoDatabase) Has(key []byte) (bool, error)
- func (db *MongoDatabase) HasObject(hash common.Hash) (bool, error)
- func (db *MongoDatabase) InitBulk() *mgo.Session
- func (db *MongoDatabase) IsEmptyKey(key []byte) bool
- func (db *MongoDatabase) NewBatch() ethdb.Batch
- func (db *MongoDatabase) Put(key []byte, val []byte) error
- func (db *MongoDatabase) PutObject(hash common.Hash, val interface{}) error
- type MongoItem
- type MongoItemRecord
- type Order
- type OrderDao
- type OrderHistoryItem
- type OrderItemBSON
- type PublicTomoXAPI
- type SettleBalance
- type SignatureRecord
- type TomoX
- func (tomox *TomoX) APIs() []rpc.API
- func (tomox *TomoX) ApplyOrder(coinbase common.Address, ipcEndpoint string, statedb *state.StateDB, ...) ([]map[string]string, []*tomox_state.OrderItem, error)
- func (tomox *TomoX) CommitOrder(coinbase common.Address, ipcEndpoint string, statedb *state.StateDB, ...) ([]map[string]string, []*tomox_state.OrderItem, error)
- func (tomox *TomoX) GetDB() OrderDao
- func (tomox *TomoX) GetMongoDB() OrderDao
- func (tomox *TomoX) GetTokenDecimal(ipcEndpoint string, tokenAddr common.Address) (*big.Int, error)
- func (tomox *TomoX) GetTomoxState(block *types.Block) (*tomox_state.TomoXStateDB, error)
- func (tomox *TomoX) GetTomoxStateRoot(block *types.Block) (common.Hash, error)
- func (tomox *TomoX) IsSDKNode() bool
- func (tomox *TomoX) Overflow() bool
- func (tomox *TomoX) ProcessOrderPending(coinbase common.Address, ipcEndpoint string, ...) []TxDataMatch
- func (tomox *TomoX) Protocols() []p2p.Protocol
- func (tomox *TomoX) RollbackReorgTxMatch(txhash common.Hash)
- func (tomox *TomoX) SettleBalance(ipcEndpoint string, maker, taker common.Address, ...) (map[common.Address]map[string]interface{}, error)
- func (tomox *TomoX) Start(server *p2p.Server) error
- func (tomox *TomoX) Stop() error
- func (tomox *TomoX) SyncDataToSDKNode(txDataMatch TxDataMatch, txHash common.Hash, txMatchTime time.Time, ...) error
- func (tomox *TomoX) UpdateOrderCache(baseToken, quoteToken common.Address, orderId uint64, txhash common.Hash, ...)
- func (tomox *TomoX) Version() uint64
- type Trade
- type TradeBSON
- type TradeResult
- type TxDataMatch
- type TxMatchBatch
Constants ¶
const ( TrueByte = byte(1) FalseByte = byte(0) Ask = "SELL" Bid = "BUY" Market = "MO" Limit = "LO" Cancel = "CANCELLED" )
const ( OrderStatusNew = "NEW" OrderStatusOpen = "OPEN" OrderStatusPartialFilled = "PARTIAL_FILLED" OrderStatusFilled = "FILLED" OrderStatusCancelled = "CANCELLED" OrderStatusRejected = "REJECTED" )
const ( Fee = "Fee" // Fee is calculated in quoteToken InToken = "InToken" // type of token which user is received as the result of the trade InQuantity = "InQuantity" // amount of token which user is received as the result of the trade, not include fee InTotal = "InTotal" // amount of token which user is received as the result of the trade, include fee OutToken = "OutToken" // type of token which user sends out to the partner as the result of the trade OutQuantity = "OutQuantity" // amount of token which user sends out to the partner as the result of the trade, not include fee OutTotal = "OutTotal" // amount of token which user sends out to the partner as the result of the trade, include fee )
const ( ProtocolName = "tomox" ProtocolVersion = uint64(1) ProtocolVersionStr = "1.0" )
const ( TradeStatusPending = "PENDING" TradeStatusSuccess = "SUCCESS" TradeStatusError = "ERROR" TradeTakerOrderHash = "takerOrderHash" TradeMakerOrderHash = "makerOrderHash" TradeTimestamp = "timestamp" TradeQuantity = "quantity" TradeMakerExchange = "makerExAddr" TradeMaker = "uAddr" TradeBaseToken = "bToken" TradeQuoteToken = "qToken" TradePrice = "tradedPrice" )
const (
LimitThresholdOrderNonceInQueue = 100
)
Variables ¶
var ( ErrNoTopics = errors.New("missing topic(s)") ErrOrderNonceTooLow = errors.New("OrderNonce too low") ErrOrderNonceTooHigh = errors.New("OrderNonce too high") )
List of errors
var ( TokenMappingSlot = map[string]uint64{ "balances": 0, } RelayerMappingSlot = map[string]uint64{ "CONTRACT_OWNER": 0, "MaximumRelayers": 1, "MaximumTokenList": 2, "RELAYER_LIST": 3, "RELAYER_COINBASES": 4, "RESIGN_REQUESTS": 5, "RELAYER_ON_SALE_LIST": 6, "RelayerCount": 7, "MinimumDeposit": 8, } RelayerStructMappingSlot = map[string]*big.Int{ "_deposit": big.NewInt(0), "_fee": big.NewInt(1), "_fromTokens": big.NewInt(2), "_toTokens": big.NewInt(3), "_index": big.NewInt(4), "_owner": big.NewInt(5), } )
var ( // errors ErrUnsupportedEngine = errors.New("only POSV supports matching orders") ErrTomoXServiceNotFound = errors.New("can't attach tomoX service") ErrInvalidDryRunResult = errors.New("failed to apply txMatches, invalid dryRun result") )
var ( ErrNonceTooHigh = errors.New("nonce too high") ErrNonceTooLow = errors.New("nonce too low") )
var DefaultConfig = Config{
DataDir: "",
}
DefaultConfig represents (shocker!) the default configuration.
Functions ¶
func DecodeBytesItem ¶
func EncodeBytesItem ¶
func EncodeTxMatchesBatch ¶
func EncodeTxMatchesBatch(txMatchBatch TxMatchBatch) ([]byte, error)
func GetKeyFromBig ¶
func GetKeyFromString ¶
func GetKeyFromUint64 ¶
func GetOrderBookHash ¶
func GetOrderHistoryKey ¶
func GetSegmentHash ¶
func GetTradeQuantity ¶
func IsEqualOrGreaterThan ¶
func IsEqualOrSmallerThan ¶
func IsGreaterThan ¶
func IsSmallerThan ¶
func IsStrictlyGreaterThan ¶
func IsStrictlySmallerThan ¶
func SetteBalance ¶
func SetteBalance(coinbase common.Address, takerOrder, makerOrder *tomox_state.OrderItem, settleBalance *SettleBalance, statedb *state.StateDB) error
Types ¶
type Batch ¶
type Batch struct {
// contains filtered or unexported fields
}
func (*Batch) SetCollection ¶
type BatchDatabase ¶
type BatchDatabase struct { Debug bool // contains filtered or unexported fields }
func NewBatchDatabase ¶
func NewBatchDatabase(datadir string, cacheLimit int) *BatchDatabase
NewBatchDatabase use rlp as encoding
func NewBatchDatabaseWithEncode ¶
func NewBatchDatabaseWithEncode(datadir string, cacheLimit int) *BatchDatabase
batchdatabase is a fast cache db to retrieve in-mem object
func NewLDBEngine ¶
func NewLDBEngine(cfg *Config) *BatchDatabase
func (*BatchDatabase) Close ¶
func (db *BatchDatabase) Close()
func (*BatchDatabase) CommitBulk ¶
func (db *BatchDatabase) CommitBulk(sc *mgo.Session) error
func (*BatchDatabase) Delete ¶
func (db *BatchDatabase) Delete(key []byte) error
func (*BatchDatabase) DeleteObject ¶
func (db *BatchDatabase) DeleteObject(hash common.Hash) error
func (*BatchDatabase) DeleteTradeByTxHash ¶
func (db *BatchDatabase) DeleteTradeByTxHash(txhash common.Hash)
func (*BatchDatabase) GetListOrderByHashes ¶
func (db *BatchDatabase) GetListOrderByHashes(hashes []string) []*tomox_state.OrderItem
func (*BatchDatabase) GetObject ¶
func (db *BatchDatabase) GetObject(hash common.Hash, val interface{}) (interface{}, error)
func (*BatchDatabase) GetOrderByTxHash ¶
func (db *BatchDatabase) GetOrderByTxHash(txhash common.Hash) []*tomox_state.OrderItem
func (*BatchDatabase) HasObject ¶
func (db *BatchDatabase) HasObject(hash common.Hash) (bool, error)
func (*BatchDatabase) InitBulk ¶
func (db *BatchDatabase) InitBulk() *mgo.Session
func (*BatchDatabase) IsEmptyKey ¶
func (db *BatchDatabase) IsEmptyKey(key []byte) bool
func (*BatchDatabase) NewBatch ¶
func (db *BatchDatabase) NewBatch() ethdb.Batch
type Comparator ¶
type DecodeBytes ¶
type EncodeToBytes ¶
type FormatBytes ¶
type MongoDatabase ¶
func NewMongoDBEngine ¶
func NewMongoDBEngine(cfg *Config) *MongoDatabase
func NewMongoDatabase ¶
func NewMongoDatabase(session *mgo.Session, dbName string, mongoURL string, replicaSetName string, cacheLimit int) (*MongoDatabase, error)
InitSession initializes a new session with mongodb
func (*MongoDatabase) Close ¶
func (db *MongoDatabase) Close()
func (*MongoDatabase) CommitBulk ¶
func (db *MongoDatabase) CommitBulk(sc *mgo.Session) error
func (*MongoDatabase) CommitOrder ¶
func (db *MongoDatabase) CommitOrder(o *tomox_state.OrderItem) error
func (*MongoDatabase) CommitTrade ¶
func (db *MongoDatabase) CommitTrade(t *Trade) error
func (*MongoDatabase) Delete ¶
func (db *MongoDatabase) Delete(key []byte) error
func (*MongoDatabase) DeleteObject ¶
func (db *MongoDatabase) DeleteObject(hash common.Hash) error
func (*MongoDatabase) DeleteTradeByTxHash ¶
func (db *MongoDatabase) DeleteTradeByTxHash(txhash common.Hash)
func (*MongoDatabase) GetListOrderByHashes ¶
func (db *MongoDatabase) GetListOrderByHashes(hashes []string) []*tomox_state.OrderItem
func (*MongoDatabase) GetObject ¶
func (db *MongoDatabase) GetObject(hash common.Hash, val interface{}) (interface{}, error)
func (*MongoDatabase) GetOrderByTxHash ¶
func (db *MongoDatabase) GetOrderByTxHash(txhash common.Hash) []*tomox_state.OrderItem
func (*MongoDatabase) HasObject ¶
func (db *MongoDatabase) HasObject(hash common.Hash) (bool, error)
func (*MongoDatabase) InitBulk ¶
func (db *MongoDatabase) InitBulk() *mgo.Session
func (*MongoDatabase) IsEmptyKey ¶
func (db *MongoDatabase) IsEmptyKey(key []byte) bool
func (*MongoDatabase) NewBatch ¶
func (db *MongoDatabase) NewBatch() ethdb.Batch
type MongoItemRecord ¶
type Order ¶
type Order struct { Item *tomox_state.OrderItem Key []byte `json:"orderID"` }
type OrderDao ¶
type OrderDao interface { // for both leveldb and mongodb IsEmptyKey(key []byte) bool Close() // mongodb methods HasObject(hash common.Hash) (bool, error) GetObject(hash common.Hash, val interface{}) (interface{}, error) PutObject(hash common.Hash, val interface{}) error DeleteObject(hash common.Hash) error // won't return error if key not found GetOrderByTxHash(txhash common.Hash) []*tomox_state.OrderItem GetListOrderByHashes(hashes []string) []*tomox_state.OrderItem DeleteTradeByTxHash(txhash common.Hash) InitBulk() *mgo.Session CommitBulk(sc *mgo.Session) error // leveldb methods Put(key []byte, value []byte) error Get(key []byte) ([]byte, error) Has(key []byte) (bool, error) Delete(key []byte) error NewBatch() ethdb.Batch }
type OrderHistoryItem ¶
type OrderItemBSON ¶
type OrderItemBSON struct { Quantity string `json:"quantity,omitempty" bson:"quantity"` Price string `json:"price,omitempty" bson:"price"` ExchangeAddress string `json:"exchangeAddress,omitempty" bson:"exchangeAddress"` UserAddress string `json:"userAddress,omitempty" bson:"userAddress"` BaseToken string `json:"baseToken,omitempty" bson:"baseToken"` QuoteToken string `json:"quoteToken,omitempty" bson:"quoteToken"` Status string `json:"status,omitempty" bson:"status"` Side string `json:"side,omitempty" bson:"side"` Type string `json:"type,omitempty" bson:"type"` Hash string `json:"hash,omitempty" bson:"hash"` Signature *SignatureRecord `json:"signature,omitempty" bson:"signature"` FilledAmount string `json:"filledAmount,omitempty" bson:"filledAmount"` Nonce string `json:"nonce,omitempty" bson:"nonce"` PairName string `json:"pairName,omitempty" bson:"pairName"` CreatedAt time.Time `json:"createdAt,omitempty" bson:"createdAt"` UpdatedAt time.Time `json:"updatedAt,omitempty" bson:"updatedAt"` OrderID string `json:"orderID,omitempty" bson:"orderID"` NextOrder string `json:"nextOrder,omitempty" bson:"nextOrder"` PrevOrder string `json:"prevOrder,omitempty" bson:"prevOrder"` OrderList string `json:"orderList,omitempty" bson:"orderList"` Key string `json:"key" bson:"key"` }
type PublicTomoXAPI ¶
type PublicTomoXAPI struct {
// contains filtered or unexported fields
}
PublicTomoXAPI provides the tomoX RPC service that can be use publicly without security implications.
func NewPublicTomoXAPI ¶
func NewPublicTomoXAPI(t *TomoX) *PublicTomoXAPI
NewPublicTomoXAPI create a new RPC tomoX service.
func (*PublicTomoXAPI) GetOrderNonce ¶
GetOrderNonce returns the latest orderNonce of the given address
func (*PublicTomoXAPI) GetPendingOrders ¶
func (api *PublicTomoXAPI) GetPendingOrders(pairName string) ([]*tomox_state.OrderItem, error)
GetPendingOrders returns pending orders of the given pair
type SettleBalance ¶
type SettleBalance struct { Taker TradeResult Maker TradeResult }
func GetSettleBalance ¶
func (*SettleBalance) String ¶
func (settleBalance *SettleBalance) String() string
type SignatureRecord ¶
type TomoX ¶
type TomoX struct { Triegc *prque.Prque // Priority queue mapping block numbers to tries to gc StateCache tomox_state.Database // State database to reuse between imports (contains state cache) *tomox_state.TomoXStateDB // contains filtered or unexported fields }
func (*TomoX) ApplyOrder ¶
func (tomox *TomoX) ApplyOrder(coinbase common.Address, ipcEndpoint string, statedb *state.StateDB, tomoXstatedb *tomox_state.TomoXStateDB, orderBook common.Hash, order *tomox_state.OrderItem) ([]map[string]string, []*tomox_state.OrderItem, error)
func (*TomoX) CommitOrder ¶
func (tomox *TomoX) CommitOrder(coinbase common.Address, ipcEndpoint string, statedb *state.StateDB, tomoXstatedb *tomox_state.TomoXStateDB, orderBook common.Hash, order *tomox_state.OrderItem) ([]map[string]string, []*tomox_state.OrderItem, error)
func (*TomoX) GetMongoDB ¶
func (*TomoX) GetTokenDecimal ¶
func (*TomoX) GetTomoxState ¶
func (tomox *TomoX) GetTomoxState(block *types.Block) (*tomox_state.TomoXStateDB, error)
func (*TomoX) GetTomoxStateRoot ¶
func (*TomoX) ProcessOrderPending ¶
func (tomox *TomoX) ProcessOrderPending(coinbase common.Address, ipcEndpoint string, pending map[common.Address]types.OrderTransactions, statedb *state.StateDB, tomoXstatedb *tomox_state.TomoXStateDB) []TxDataMatch
func (*TomoX) RollbackReorgTxMatch ¶
func (*TomoX) SettleBalance ¶
func (*TomoX) SyncDataToSDKNode ¶
func (tomox *TomoX) SyncDataToSDKNode(txDataMatch TxDataMatch, txHash common.Hash, txMatchTime time.Time, statedb *state.StateDB) error
there are 3 tasks need to complete to update data in SDK nodes after matching
- txMatchData.Order: order has been processed. This order should be put to `orders` collection with status sdktypes.OrderStatusOpen
- txMatchData.Trades: includes information of matched orders. a. PutObject them to `trades` collection b. Update status of regrading orders to sdktypes.OrderStatusFilled
func (*TomoX) UpdateOrderCache ¶
type Trade ¶
type Trade struct { Taker common.Address `json:"taker" bson:"taker"` Maker common.Address `json:"maker" bson:"maker"` BaseToken common.Address `json:"baseToken" bson:"baseToken"` QuoteToken common.Address `json:"quoteToken" bson:"quoteToken"` MakerOrderHash common.Hash `json:"makerOrderHash" bson:"makerOrderHash"` TakerOrderHash common.Hash `json:"takerOrderHash" bson:"takerOrderHash"` MakerExchange common.Address `json:"makerExchange" bson:"makerExchange"` TakerExchange common.Address `json:"takerExchange" bson:"takerExchange"` Hash common.Hash `json:"hash" bson:"hash"` TxHash common.Hash `json:"txHash" bson:"txHash"` PairName string `json:"pairName" bson:"pairName"` PricePoint *big.Int `json:"pricepoint" bson:"pricepoint"` Amount *big.Int `json:"amount" bson:"amount"` MakeFee *big.Int `json:"makeFee" bson:"makeFee"` TakeFee *big.Int `json:"takeFee" bson:"takeFee"` Status string `json:"status" bson:"status"` CreatedAt time.Time `json:"createdAt" bson:"createdAt"` UpdatedAt time.Time `json:"updatedAt" bson:"updatedAt"` TakerOrderSide string `json:"takerOrderSide" bson:"takerOrderSide"` }
func (*Trade) ComputeHash ¶
ComputeHash returns hashes the trade The OrderHash, Amount, Taker and TradeNonce attributes must be set before attempting to compute the trade hash
type TradeBSON ¶
type TradeBSON struct { Taker string `json:"taker" bson:"taker"` Maker string `json:"maker" bson:"maker"` BaseToken string `json:"baseToken" bson:"baseToken"` QuoteToken string `json:"quoteToken" bson:"quoteToken"` MakerOrderHash string `json:"makerOrderHash" bson:"makerOrderHash"` TakerOrderHash string `json:"takerOrderHash" bson:"takerOrderHash"` MakerExchange string `json:"makerExchange" bson:"makerExchange"` TakerExchange string `json:"takerExchange" bson:"takerExchange"` Hash string `json:"hash" bson:"hash"` TxHash string `json:"txHash" bson:"txHash"` PairName string `json:"pairName" bson:"pairName"` Amount string `json:"amount" bson:"amount"` MakeFee string `json:"makeFee" bson:"makeFee"` TakeFee string `json:"takeFee" bson:"takeFee"` PricePoint string `json:"pricepoint" bson:"pricepoint"` Status string `json:"status" bson:"status"` CreatedAt time.Time `json:"createdAt" bson:"createdAt"` UpdatedAt time.Time `json:"updatedAt" bson:"updatedAt"` TakerOrderSide string `json:"takerOrderSide" bson:"takerOrderSide"` }
type TradeResult ¶
type TxDataMatch ¶
type TxDataMatch struct { Order []byte // serialized data of order has been processed in this tx Trades []map[string]string RejectedOders []*tomox_state.OrderItem }
func (TxDataMatch) DecodeOrder ¶
func (tx TxDataMatch) DecodeOrder() (*tomox_state.OrderItem, error)
func (TxDataMatch) GetRejectedOrders ¶
func (tx TxDataMatch) GetRejectedOrders() []*tomox_state.OrderItem
func (TxDataMatch) GetTrades ¶
func (tx TxDataMatch) GetTrades() []map[string]string
type TxMatchBatch ¶
type TxMatchBatch struct { Data []TxDataMatch Timestamp int64 TxHash common.Hash }
func DecodeTxMatchesBatch ¶
func DecodeTxMatchesBatch(data []byte) (TxMatchBatch, error)
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package state provides a caching layer atop the Ethereum state trie.
|
Package state provides a caching layer atop the Ethereum state trie. |