github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/swarm/storage/mock/mock.go (about) 1 2 //此源码被清华学神尹成大魔王专业翻译分析并修改 3 //尹成QQ77025077 4 //尹成微信18510341407 5 //尹成所在QQ群721929980 6 //尹成邮箱 yinc13@mails.tsinghua.edu.cn 7 //尹成毕业于清华大学,微软区块链领域全球最有价值专家 8 //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620 9 // 10 // 11 // 12 // 13 // 14 // 15 // 16 // 17 // 18 // 19 // 20 // 21 // 22 // 23 // 24 25 // 26 // 27 // 28 // 29 // 30 // 31 // 32 // 33 // 34 // 35 // 36 // 37 // 38 // 39 // 40 // 41 package mock 42 43 import ( 44 "errors" 45 "io" 46 47 "github.com/ethereum/go-ethereum/common" 48 ) 49 50 // 51 var ErrNotFound = errors.New("not found") 52 53 // 54 // 55 type NodeStore struct { 56 store GlobalStorer 57 addr common.Address 58 } 59 60 // 61 // 62 func NewNodeStore(addr common.Address, store GlobalStorer) *NodeStore { 63 return &NodeStore{ 64 store: store, 65 addr: addr, 66 } 67 } 68 69 // 70 // 71 func (n *NodeStore) Get(key []byte) (data []byte, err error) { 72 return n.store.Get(n.addr, key) 73 } 74 75 // 76 // 77 func (n *NodeStore) Put(key []byte, data []byte) error { 78 return n.store.Put(n.addr, key, data) 79 } 80 81 // 82 // 83 // 84 // 85 type GlobalStorer interface { 86 Get(addr common.Address, key []byte) (data []byte, err error) 87 Put(addr common.Address, key []byte, data []byte) error 88 HasKey(addr common.Address, key []byte) bool 89 // 90 // 91 // 92 NewNodeStore(addr common.Address) *NodeStore 93 } 94 95 // 96 // 97 type Importer interface { 98 Import(r io.Reader) (n int, err error) 99 } 100 101 // 102 // 103 type Exporter interface { 104 Export(w io.Writer) (n int, err error) 105 } 106 107 // 108 // 109 type ImportExporter interface { 110 Importer 111 Exporter 112 } 113 114 // 115 // 116 type ExportedChunk struct { 117 Data []byte `json:"d"` 118 Addrs []common.Address `json:"a"` 119 }