mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-05-05 23:55:11 +00:00
core: take into account size fee during verifyTxWitnesses
GasLimit for transaction scripts verification should not include fee for transaction size.
This commit is contained in:
parent
2b11e99225
commit
e34e367a7b
5 changed files with 29 additions and 9 deletions
|
@ -298,6 +298,26 @@ func TestVerifyTx(t *testing.T) {
|
|||
require.NoError(t, accs[0].SignTx(tx))
|
||||
checkErr(t, ErrTxSmallNetworkFee, tx)
|
||||
})
|
||||
t.Run("AlmostEnoughNetworkFee", func(t *testing.T) {
|
||||
tx := bc.newTestTx(h, testScript)
|
||||
verificationNetFee, calcultedScriptSize := CalculateNetworkFee(accs[0].Contract.Script)
|
||||
expectedSize := io.GetVarSize(tx) + calcultedScriptSize
|
||||
calculatedNetFee := verificationNetFee + int64(expectedSize)*bc.FeePerByte()
|
||||
tx.NetworkFee = calculatedNetFee - 1
|
||||
require.NoError(t, accs[0].SignTx(tx))
|
||||
require.Equal(t, expectedSize, io.GetVarSize(tx))
|
||||
checkErr(t, ErrVerificationFailed, tx)
|
||||
})
|
||||
t.Run("EnoughNetworkFee", func(t *testing.T) {
|
||||
tx := bc.newTestTx(h, testScript)
|
||||
verificationNetFee, calcultedScriptSize := CalculateNetworkFee(accs[0].Contract.Script)
|
||||
expectedSize := io.GetVarSize(tx) + calcultedScriptSize
|
||||
calculatedNetFee := verificationNetFee + int64(expectedSize)*bc.FeePerByte()
|
||||
tx.NetworkFee = calculatedNetFee
|
||||
require.NoError(t, accs[0].SignTx(tx))
|
||||
require.Equal(t, expectedSize, io.GetVarSize(tx))
|
||||
require.NoError(t, bc.VerifyTx(tx))
|
||||
})
|
||||
t.Run("CalculateNetworkFee, signature script", func(t *testing.T) {
|
||||
tx := bc.newTestTx(h, testScript)
|
||||
expectedSize := io.GetVarSize(tx)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue