Merge pull request #523 from nspcc-dev/fix-interim-block-changes-store

Fix interim block changes store
This commit is contained in:
Roman Khimov 2019-11-27 14:51:29 +03:00 committed by GitHub
commit c5e2b3ce73
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 4 deletions

View file

@ -1216,7 +1216,7 @@ func (bc *Blockchain) GetStandByValidators() (keys.PublicKeys, error) {
// GetValidators returns validators. // GetValidators returns validators.
// Golang implementation of GetValidators method in C# (https://github.com/neo-project/neo/blob/c64748ecbac3baeb8045b16af0d518398a6ced24/neo/Persistence/Snapshot.cs#L182) // Golang implementation of GetValidators method in C# (https://github.com/neo-project/neo/blob/c64748ecbac3baeb8045b16af0d518398a6ced24/neo/Persistence/Snapshot.cs#L182)
func (bc *Blockchain) GetValidators(txes... *transaction.Transaction) ([]*keys.PublicKey, error) { func (bc *Blockchain) GetValidators(txes ...*transaction.Transaction) ([]*keys.PublicKey, error) {
chainState := NewBlockChainState(bc.store) chainState := NewBlockChainState(bc.store)
if len(txes) > 0 { if len(txes) > 0 {
for _, tx := range txes { for _, tx := range txes {
@ -1320,7 +1320,7 @@ func (bc *Blockchain) GetValidators(txes... *transaction.Transaction) ([]*keys.P
return result, nil return result, nil
} }
func processStateTX(chainState *BlockChainState, tx *transaction.StateTX, ) error { func processStateTX(chainState *BlockChainState, tx *transaction.StateTX) error {
for _, desc := range tx.Descriptors { for _, desc := range tx.Descriptors {
switch desc.Type { switch desc.Type {
case transaction.Account: case transaction.Account:

View file

@ -19,8 +19,9 @@ type BlockChainState struct {
// NewBlockChainState creates blockchain state with it's memchached store. // NewBlockChainState creates blockchain state with it's memchached store.
func NewBlockChainState(store *storage.MemCachedStore) *BlockChainState { func NewBlockChainState(store *storage.MemCachedStore) *BlockChainState {
tmpStore := storage.NewMemCachedStore(store)
return &BlockChainState{ return &BlockChainState{
store: store, store: tmpStore,
unspentCoins: make(UnspentCoins), unspentCoins: make(UnspentCoins),
spentCoins: make(SpentCoins), spentCoins: make(SpentCoins),
accounts: make(Accounts), accounts: make(Accounts),
@ -31,7 +32,7 @@ func NewBlockChainState(store *storage.MemCachedStore) *BlockChainState {
} }
// commit commits all the data in current state into storage. // commit commits all the data in current state into storage.
func (state *BlockChainState) commit() error { func (state *BlockChainState) commit() error {
if err := state.accounts.commit(state.store); err != nil { if err := state.accounts.commit(state.store); err != nil {
return err return err
} }