Anna Shaleva
19cc6c6369
compiler: store ready-to-use notification names in bindings config
...
Notification and its parameters may have any UTF8-compatible name
which is inappropriate for bindings configuration and for the resulting
RPC bindings file. This commit stores the prettified version of
notification's name and parameters that are ready to be used in the
resulting RPC binding without any changes.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:53:43 +03:00
Anna Shaleva
41938ffa78
smartcontract: drop standard events before RPC binging generation
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:53:43 +03:00
Anna Shaleva
044ae477ca
smartconract: generate RPC binding wrappers for events
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:52:39 +03:00
Anna Shaleva
ae52b2c2fa
rpcbinding: fix binding indentation
...
New rule for writing blocks of code to our template: new line before
the block starts and new line after the block ends. This rule is the
same as the one we use during manual typing.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-30 17:37:06 +03:00
Anna Shaleva
0f0f7b364f
rpcbinding: use typed return err value in etTypeConverter
...
Otherwise the resulting code can't be compiled.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-25 16:41:23 +03:00
Anna Shaleva
36af361c2b
smartcontract: add FromStackItem wrapper for RPC bindings
...
Make it exported and reusable from the user's code.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-24 11:27:49 +03:00
Anna Shaleva
6b21ad9922
*: replace interface{}
with any
keyword
...
Everywhere including examples, external interop APIs, bindings generators
code and in other valuable places. A couple of `interface{}` usages are
intentionally left in the CHANGELOG.md, documentation and tests.
2023-04-04 13:22:42 +03:00
Roman Khimov
b1e7f40226
rpcbinding: fix wrappers for Any type, fix #2898
2023-02-18 00:06:45 +03:00
Roman Khimov
e5aa5ca294
rpcbinding: improve error reporting in generated code
2022-12-06 13:15:10 +03:00
Roman Khimov
ec5ebc8c18
rpcbinding: improve indentation for internal unwrappers
2022-12-06 13:15:10 +03:00
Roman Khimov
c058ab5604
rpcbinding: handle more complex non-structured types
2022-12-06 13:15:10 +03:00
Roman Khimov
ce67e6795e
rpcbinding: properly support maps
...
I'm not sure that map with a `*big.Int` key is a good one, but it can work
this way.
2022-12-06 13:15:10 +03:00
Roman Khimov
8e0be6e7a5
rpcbinding: improve indentation for internal array code
2022-12-06 13:15:10 +03:00
Roman Khimov
0214628127
rpcbinding: generate bindings using new extended type data
2022-12-06 13:15:10 +03:00
Roman Khimov
82c6ce218b
rpcbinding: use binding condig to generate code for simple arrays
...
Part of #2767 .
2022-11-14 13:01:13 +03:00
Roman Khimov
145ebad90e
binding: drop the only error condition from TemplateFromManifest
...
Simplify the interface, we do IsValid() check anyway in the CLI and it covers
this condition as well.
2022-11-09 18:13:45 +03:00
Roman Khimov
a7f86dcb7f
rpcbinding: generate Expanded methods for iterators
...
Refs. #2768 .
2022-11-09 18:13:45 +03:00
Roman Khimov
d569fe01e6
rpcbinding: initial support for iterators, see #2768
...
Already better than stackitem.Item.
2022-11-09 18:13:45 +03:00
Roman Khimov
69d8905ad9
rpcbinding: exclude onNEPXXPayment methods from wrappers
...
They make no sense there.
2022-11-08 17:01:36 +03:00
Roman Khimov
130608ac67
rpcbinding: support writer-only wrappers
...
"verify" contract doesn't have any safe methods.
2022-11-08 17:01:36 +03:00
Roman Khimov
df29008a50
rpcbinding: add GAS testcase, fix methodless wrappers
...
* strip NEP-XX methods before going into generator to avoid unused imports
* nepXX.Invoker types already include Call
* always import util, it's used for Hash
2022-11-08 17:01:36 +03:00
Roman Khimov
aeb61fb61d
rpcbinding: generate ASSERT for bool-returning methods
...
It's a common pattern.
2022-11-08 17:01:36 +03:00
Roman Khimov
2a4a5ab479
rpcbinding: support simple wrappers for writer methods
...
Fixes #2769 .
2022-11-08 17:01:36 +03:00
Roman Khimov
617c31093f
smartcontract: initial rpcbinding implementation, fix #2705
...
It can do some unwrapping and reuse nepXX packages. It only uses manifest data
at the moment, see #2767 , #2768 , #2769 .
2022-10-27 22:57:49 +03:00