Skip to content

Commit

Permalink
Removed TODOs, added validation
Browse files Browse the repository at this point in the history
  • Loading branch information
esuwu authored and nickeskov committed Jan 9, 2024
1 parent b8ec4e1 commit f8b0ab8
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
5 changes: 4 additions & 1 deletion pkg/state/appender.go
Original file line number Diff line number Diff line change
Expand Up @@ -699,7 +699,10 @@ func (a *txAppender) appendBlock(params *appendBlockParams) error {
if err = a.diffStor.saveTxDiff(minerAndRewardDiff); err != nil {
return err
}
// TODO validate before reset
err = a.diffApplier.validateBalancesChanges(minerAndRewardDiff.balancesChanges())
if err != nil {
return errors.Wrap(err, "failed to validate miner reward changes")
}
a.diffStor.reset()

err = initialSnapshot.ApplyInitialSnapshot(a.txHandler.sa)
Expand Down
20 changes: 12 additions & 8 deletions pkg/state/snapshot_generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -1089,22 +1089,26 @@ func (sg *snapshotGenerator) balanceDiffFromTxDiff(balanceChanges []balanceChang
addrAssetBalanceDiff := make(addressAssetBalanceDiff)
addrWavesBalanceDiff := make(addressWavesBalanceDiff)
for _, balanceChange := range balanceChanges {
// TODO check this place
if len(balanceChange.balanceDiffs) > 1 {
return nil, nil, errors.Errorf("more than one balance diff for the same address in the same block")
}
if len(balanceChange.key) > wavesBalanceKeySize {
err := sg.addAssetBalanceDiffFromTxDiff(balanceChange.balanceDiffs[0], balanceChange.key,
scheme, addrAssetBalanceDiff)
if err != nil {
return nil, nil, errors.Wrap(err, "failed to add asset balance from tx diff")
}
} else {
switch len(balanceChange.key) {
case wavesBalanceKeySize:
err := sg.addWavesBalanceDiffFromTxDiff(balanceChange.balanceDiffs[0], balanceChange.key,
scheme, addrWavesBalanceDiff)
if err != nil {
return nil, nil, errors.Wrap(err, "failed to add waves balance from tx diff")
}
case assetBalanceKeySize:
err := sg.addAssetBalanceDiffFromTxDiff(balanceChange.balanceDiffs[0], balanceChange.key,
scheme, addrAssetBalanceDiff)
if err != nil {
return nil, nil, errors.Wrap(err, "failed to add asset balance from tx diff")
}
default:
return nil, nil,
errors.Errorf("wrong key size to calculate balance diff from tx diff, key size is %d",
len(balanceChange.key))
}
}
return addrWavesBalanceDiff, addrAssetBalanceDiff, nil
Expand Down

0 comments on commit f8b0ab8

Please sign in to comment.