rpc: add implementation note about iterator sessions

This commit is contained in:
Anna Shaleva 2022-07-08 17:14:49 +03:00
parent ef114d6274
commit 0117581e5c

View file

@ -98,7 +98,7 @@ following data types:
Any call that takes any of these types for input in JSON format is affected. Any call that takes any of these types for input in JSON format is affected.
##### `invokefunction` ##### `invokefunction`, `invokescript`
neo-go implementation of `invokefunction` does not return `tx` neo-go implementation of `invokefunction` does not return `tx`
field in the answer because that requires signing the transaction with some field in the answer because that requires signing the transaction with some
@ -110,6 +110,12 @@ It's possible to use `invokefunction` not only with a contract scripthash, but a
with a contract name (for native contracts) or a contract ID (for all contracts). This with a contract name (for native contracts) or a contract ID (for all contracts). This
feature is not supported by the C# node. feature is not supported by the C# node.
If iterator is present on stack after function or script invocation then, depending
on `SessionEnable` RPC-server setting, iterator either will be marshalled as iterator
ID (corresponds to `SessionEnabled: true`) or as a set of traversed iterator values
up to `DefaultMaxIteratorResultItems` packed into array (corresponds to
`SessionEnabled: false`).
##### `getcontractstate` ##### `getcontractstate`
It's possible to get non-native contract state by its ID, unlike with C# node where It's possible to get non-native contract state by its ID, unlike with C# node where