package exchain

import (
	"github.com/ethereum/go-ethereum/common"
	"github.com/holiman/uint256"
)

type StateDB interface {
	GetAccount(address common.Address) *AccountInfo
	FrozenBalance(address common.Address, coin common.Address, balance uint256.Int) error
	UnFrozenBalance(address common.Address, coin common.Address, balance uint256.Int) error
	SubBalance(address common.Address, coin common.Address, balance uint256.Int) error
	AddBalance(address common.Address, coin common.Address, balance uint256.Int) error
}

type ChainDB interface {
	AddCoin()
	GetCoin()
	AddPair()
	GetPair()
}

// todo: tx press test.
// limit, market, cancel 100w, each block 10w.
// serialize and unserialize.
// todo: add new struct.
// define Coin, Pair struct to store at chaindb.
// todo: define detail tx struct.
