neoneo-go/pkg
Roman Khimov 20b19d4599 interop/contract: fix state rollbacks for nested contexts
Our wrapping optimization relied on the caller context having a TRY block,
but each context (including internal calls!) has an exception handling stack
of its own, which means that for an invocation stack of

    entry
    A.someMethodFromEntry()   # this one has a TRY
    A.internalMethodViaCALL() # this one doesn't
    B.someMethod()

we get `HasTryBlock() == false` for `A.internalMethodViaCALL()` context, which
leads to missing wrapper and missing rollbacks if B is to THROW. What this
patch does instead is it checks for any context within contract boundaries.

Fixes #3045.

Signed-off-by: Roman Khimov <roman@nspcc.ru>
2023-06-29 11:35:10 +03:00
..
compiler compiler: disallow named types redeclaration via contract config 2023-05-31 15:53:43 +03:00
config config: do not allow negative validators count 2023-04-13 13:43:14 +03:00
consensus *: use require.ErrorIs instead of require.True(t, error.Is()) 2023-05-04 17:03:47 +03:00
core interop/contract: fix state rollbacks for nested contexts 2023-06-29 11:35:10 +03:00
crypto *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
encoding *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
interop interop/util: Drop unused import 2023-04-22 16:36:49 +04:00
io *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
neorpc config: use uint32 for validators/committee members count 2023-04-13 13:42:40 +03:00
neotest cli: fetch extended evet types from contract config 2023-05-31 15:53:41 +03:00
network network: add neogo_version metric, deprecate serv_node_version 2023-05-11 13:48:38 +03:00
rpcclient smartcontract: drop standard events before RPC binging generation 2023-05-31 15:53:43 +03:00
services oracle: make use of ReadCloser returned from NeoFS's getters 2023-06-06 17:40:19 +03:00
smartcontract rpcbinding: call scriptFor* as method 2023-06-05 18:31:34 +03:00
util *: replace interface{} with any keyword 2023-04-04 13:22:42 +03:00
vm interop/contract: fix state rollbacks for nested contexts 2023-06-29 11:35:10 +03:00
wallet Merge pull request #2725 from nspcc-dev/move-cli-tests 2022-10-06 13:43:39 +07:00