Open AnnaShaleva opened 6 months ago
That's not the way it was intended to be, sorry. See https://github.com/nspcc-dev/neo-go/pull/3361. The problem with C# code/modules is that it never returns -504.
I'll improve https://github.com/neo-project/proposals/pull/156 wording about -511 though.
Good, then no changes from neo-modules or core side are required, thus I'm closing this issue as not planned.
The problem with C# code/modules is that it never returns -504.
Although we may use this issue to enable -504
in neo-modules (and core).
Describe the bug After https://github.com/neo-project/neo-modules/pull/815 merge,
RpcError.InsufficientFunds
(with code-511
) is returned on the incoming transaction verification when:Whereas RPC errors proposal postulates that
-511 Insufficient funds
error should be returned only in case 1, i.e. when:And all other cases of insufficient sender's balance should be covered by generic
-500
error:To Reproduce Steps to reproduce the behavior:
Expected behavior
TransactionVerificationContext.CheckTransaction
so that it returns some new special error, this error should be detached fromVerifyResult.InsufficientFunds
and ported to other components (ref. https://github.com/neo-project/neo/blob/b05501af882a0d1f2a1a7841c6ddc4d0504e5fc1/src/Neo/Network/P2P/Payloads/Transaction.cs#L368.). This special error should be converted toRpcError
with-511
code on the RPC server side whereas the rest ofVerifyResult.InsufficientFunds
cases should be converted toRpcError
with-500
code.RpcError.ExpiredTransaction
to make it more precise to reflect the proposal intention. Currently it's: https://github.com/neo-project/neo-modules/blob/253a77e2b88f139bebb57779e4f3ca8837f92f68/src/RpcServer/RpcError.cs#L63Platform:
Additional context The same problem was recently fixed in NeoGo, see https://github.com/nspcc-dev/neo-go/pull/3360. This issue is not critical, but eventually it should be fixed.