forked from TrueCloudLab/neoneo-go
core: add a bit more data into NVB errors
It's not always obvious what they mean and the NVB value is.
This commit is contained in:
parent
a95984febf
commit
ac5c609063
1 changed files with 6 additions and 5 deletions
|
@ -2098,17 +2098,18 @@ func (bc *Blockchain) verifyTxAttributes(d *dao.Simple, tx *transaction.Transact
|
||||||
return fmt.Errorf("%w: NotValidBefore attribute was found, but P2PSigExtensions are disabled", ErrInvalidAttribute)
|
return fmt.Errorf("%w: NotValidBefore attribute was found, but P2PSigExtensions are disabled", ErrInvalidAttribute)
|
||||||
}
|
}
|
||||||
nvb := tx.Attributes[i].Value.(*transaction.NotValidBefore).Height
|
nvb := tx.Attributes[i].Value.(*transaction.NotValidBefore).Height
|
||||||
|
curHeight := bc.BlockHeight()
|
||||||
if isPartialTx {
|
if isPartialTx {
|
||||||
maxNVBDelta := bc.contracts.Notary.GetMaxNotValidBeforeDelta(bc.dao)
|
maxNVBDelta := bc.contracts.Notary.GetMaxNotValidBeforeDelta(bc.dao)
|
||||||
if bc.BlockHeight()+maxNVBDelta < nvb {
|
if curHeight+maxNVBDelta < nvb {
|
||||||
return fmt.Errorf("%w: partially-filled transaction should become valid not less then %d blocks after current chain's height %d", ErrInvalidAttribute, maxNVBDelta, bc.BlockHeight())
|
return fmt.Errorf("%w: NotValidBefore (%d) bigger than MaxNVBDelta (%d) allows at height %d", ErrInvalidAttribute, nvb, maxNVBDelta, curHeight)
|
||||||
}
|
}
|
||||||
if nvb+maxNVBDelta < tx.ValidUntilBlock {
|
if nvb+maxNVBDelta < tx.ValidUntilBlock {
|
||||||
return fmt.Errorf("%w: partially-filled transaction should be valid during less than %d blocks", ErrInvalidAttribute, maxNVBDelta)
|
return fmt.Errorf("%w: NotValidBefore (%d) set more than MaxNVBDelta (%d) away from VUB (%d)", ErrInvalidAttribute, nvb, maxNVBDelta, tx.ValidUntilBlock)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if height := bc.BlockHeight(); height < nvb {
|
if curHeight < nvb {
|
||||||
return fmt.Errorf("%w: transaction is not yet valid: NotValidBefore = %d, current height = %d", ErrInvalidAttribute, nvb, height)
|
return fmt.Errorf("%w: transaction is not yet valid: NotValidBefore = %d, current height = %d", ErrInvalidAttribute, nvb, curHeight)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case transaction.ConflictsT:
|
case transaction.ConflictsT:
|
||||||
|
|
Loading…
Reference in a new issue