Merge pull request #489 from nspcc-dev/claim-processing

core: add proper claim transactions processing
This commit is contained in:
Roman Khimov 2019-11-11 16:33:10 +03:00 committed by GitHub
commit 5f8edc3e54
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -431,6 +431,21 @@ func (bc *Blockchain) storeBlock(block *Block) error {
} }
} }
case *transaction.ClaimTX: case *transaction.ClaimTX:
// Remove claimed NEO from spent coins making it unavalaible for
// additional claims.
for _, input := range t.Claims {
scs, err := spentCoins.getAndUpdate(bc.store, input.PrevHash)
if err != nil {
return err
}
if scs.txHash == input.PrevHash {
// Existing scs.
delete(scs.items, input.PrevIndex)
} else {
// Uninitialized, new, forget about it.
delete(spentCoins, input.PrevHash)
}
}
case *transaction.EnrollmentTX: case *transaction.EnrollmentTX:
case *transaction.StateTX: case *transaction.StateTX:
case *transaction.PublishTX: case *transaction.PublishTX: