chain gen: YieldRepo

This commit is contained in:
Łukasz Magiera 2019-07-29 21:34:09 +02:00 committed by whyrusleeping
parent fae0422de6
commit 7f5cba1749

View File

@ -31,6 +31,9 @@ type ChainGen struct {
curBlock *types.FullBlock curBlock *types.FullBlock
miner address.Address miner address.Address
r repo.Repo
lr repo.LockedRepo
} }
type mybs struct { type mybs struct {
@ -48,18 +51,23 @@ func (m mybs) Get(c cid.Cid) (block.Block, error) {
} }
func NewGenerator() (*ChainGen, error) { func NewGenerator() (*ChainGen, error) {
mr := repo.NewMemory(nil) mr := repo.NewMemory(nil)
lr, err := mr.Lock() lr, err := mr.Lock()
if err != nil { if err != nil {
return nil, err return nil, err
} }
ds, err := lr.Datastore("/blocks") ds, err := lr.Datastore("/metadata")
if err != nil { if err != nil {
return nil, err return nil, err
} }
bs := mybs{blockstore.NewBlockstore(ds)}
bds, err := lr.Datastore("/blocks")
if err != nil {
return nil, err
}
bs := mybs{blockstore.NewBlockstore(bds)}
ks, err := lr.KeyStore() ks, err := lr.KeyStore()
if err != nil { if err != nil {
@ -105,6 +113,9 @@ func NewGenerator() (*ChainGen, error) {
genesis: genb.Genesis, genesis: genb.Genesis,
miner: miner, miner: miner,
curBlock: genfb, curBlock: genfb,
r: mr,
lr: lr,
} }
return gen, nil return gen, nil
@ -144,3 +155,10 @@ func (cg *ChainGen) NextBlock() (*types.FullBlock, error) {
return fblk, nil return fblk, nil
} }
func (cg *ChainGen) YieldRepo() (repo.Repo, error) {
if err := cg.lr.Close(); err != nil {
return nil, err
}
return cg.r, nil
}