92 lines
2.0 KiB
Go
92 lines
2.0 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
eth_common "github.com/ethereum/go-ethereum/common"
|
||
|
eth_state "github.com/ethereum/go-ethereum/core/state"
|
||
|
eth_ethdb "github.com/ethereum/go-ethereum/ethdb"
|
||
|
eth_trie "github.com/ethereum/go-ethereum/trie"
|
||
|
|
||
|
dbm "github.com/tendermint/tmlibs/db"
|
||
|
"github.com/tendermint/iavl"
|
||
|
)
|
||
|
|
||
|
// Implementation of eth_state.Database
|
||
|
type OurDatabase struct {
|
||
|
tree *iavl.Tree
|
||
|
}
|
||
|
|
||
|
func OurNewDatabase(db dbm.DB, cacheSize int) *OurDatabase {
|
||
|
od := &OurDatabase{}
|
||
|
od.tree = iavl.NewTree(db, cacheSize)
|
||
|
return od
|
||
|
}
|
||
|
|
||
|
func (od *OurDatabase) OpenTrie(root eth_common.Hash) (eth_state.Trie, error) {
|
||
|
return &OurTrie{}, nil
|
||
|
}
|
||
|
|
||
|
func (od *OurDatabase) OpenStorageTrie(addrHash, root eth_common.Hash) (eth_state.Trie, error) {
|
||
|
return nil, nil
|
||
|
}
|
||
|
|
||
|
func (od *OurDatabase) CopyTrie(eth_state.Trie) eth_state.Trie {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (od *OurDatabase) ContractCode(addrHash, codeHash eth_common.Hash) ([]byte, error) {
|
||
|
return nil, nil
|
||
|
}
|
||
|
|
||
|
func (od *OurDatabase) ContractCodeSize(addrHash, codeHash eth_common.Hash) (int, error) {
|
||
|
return 0, nil
|
||
|
}
|
||
|
|
||
|
func (od *OurDatabase) TrieDB() *eth_trie.Database {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// Implementation of eth_state.Trie
|
||
|
type OurTrie struct {
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) TryGet(key []byte) ([]byte, error) {
|
||
|
return nil, nil
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) TryUpdate(key, value []byte) error {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) TryDelete(key []byte) error {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) Commit(onleaf eth_trie.LeafCallback) (eth_common.Hash, error) {
|
||
|
return eth_common.Hash{}, nil
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) Hash() eth_common.Hash {
|
||
|
return eth_common.Hash{}
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) NodeIterator(startKey []byte) eth_trie.NodeIterator {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) GetKey([]byte) []byte {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (ot *OurTrie) Prove(key []byte, fromLevel uint, proofDb eth_ethdb.Putter) error {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
fmt.Printf("Instantiating state.Database\n")
|
||
|
db := dbm.NewDB("test" /* name */, dbm.MemDBBackend, "" /* dir */)
|
||
|
var d eth_state.Database
|
||
|
d = OurNewDatabase(db, 1024)
|
||
|
d.OpenTrie(eth_common.Hash{})
|
||
|
}
|