mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-23 13:38:35 +00:00
ec17654986
add dao which takes care about all CRUD operations on storage remove blockchain state since everything is stored on change remove storage operations from structs(entities) move structs to entities package
43 lines
1.6 KiB
Go
43 lines
1.6 KiB
Go
package core
|
|
|
|
import (
|
|
"github.com/CityOfZion/neo-go/config"
|
|
"github.com/CityOfZion/neo-go/pkg/core/entities"
|
|
"github.com/CityOfZion/neo-go/pkg/core/storage"
|
|
"github.com/CityOfZion/neo-go/pkg/core/transaction"
|
|
"github.com/CityOfZion/neo-go/pkg/crypto/keys"
|
|
"github.com/CityOfZion/neo-go/pkg/util"
|
|
"github.com/CityOfZion/neo-go/pkg/vm"
|
|
)
|
|
|
|
// Blockchainer is an interface that abstract the implementation
|
|
// of the blockchain.
|
|
type Blockchainer interface {
|
|
GetConfig() config.ProtocolConfiguration
|
|
AddHeaders(...*Header) error
|
|
AddBlock(*Block) error
|
|
BlockHeight() uint32
|
|
Close()
|
|
HeaderHeight() uint32
|
|
GetBlock(hash util.Uint256) (*Block, error)
|
|
GetContractState(hash util.Uint160) *entities.ContractState
|
|
GetHeaderHash(int) util.Uint256
|
|
GetHeader(hash util.Uint256) (*Header, error)
|
|
CurrentHeaderHash() util.Uint256
|
|
CurrentBlockHash() util.Uint256
|
|
HasBlock(util.Uint256) bool
|
|
HasTransaction(util.Uint256) bool
|
|
GetAssetState(util.Uint256) *entities.AssetState
|
|
GetAccountState(util.Uint160) *entities.AccountState
|
|
GetValidators(txes... *transaction.Transaction) ([]*keys.PublicKey, error)
|
|
GetScriptHashesForVerifying(*transaction.Transaction) ([]util.Uint160, error)
|
|
GetStorageItem(scripthash util.Uint160, key []byte) *entities.StorageItem
|
|
GetStorageItems(hash util.Uint160) (map[string]*entities.StorageItem, error)
|
|
GetTestVM() (*vm.VM, storage.Store)
|
|
GetTransaction(util.Uint256) (*transaction.Transaction, uint32, error)
|
|
GetUnspentCoinState(util.Uint256) *UnspentCoinState
|
|
References(t *transaction.Transaction) map[transaction.Input]*transaction.Output
|
|
Feer // fee interface
|
|
VerifyTx(*transaction.Transaction, *Block) error
|
|
GetMemPool() MemPool
|
|
}
|