Roman Khimov
5370034955
compiler: deduplicate autoguessed event names, fix #3088
...
Make them stable wrt parameter order and use proper names in event structures
as well.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2023-11-21 18:35:26 +03:00
Roman Khimov
a5d041a1ac
compiler: check range first, analyze funcs then
...
Type data is added while walking through function ins/outs even if we're to
throw this function away. But we don't need it, these types are not used, so
we can deal with the main part of #3071 by optimizing this out.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2023-11-21 17:52:17 +03:00
Anna Shaleva
474225d425
core, rpcsrv: apply generic attributes fee logic to NotaryServiceFeePerKey
...
Remove related methods from native Notary and add relevant code to native
Policy.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-11-21 13:42:56 +03:00
Anna Shaleva
82cb2e718d
native: introduce attribute pricing
...
Port the https://github.com/neo-project/neo/pull/2916 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-11-21 13:42:56 +03:00
Anna Shaleva
406c9f8b92
core, interop: add strLen
method for native StdLib contract
...
Close #3195 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-11-20 19:23:33 +03:00
Roman Khimov
7fb077e999
Merge pull request #3186 from nspcc-dev/reduce-max-nef-size
...
Restrict maximum serialized NEF file size
2023-11-20 15:19:40 +03:00
Anna Shaleva
90705e37e9
compiler: perform NEF size check on serialization
...
Retun an error if the serialized NEF size exceeds stackitem.MaxSize.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-11-20 15:14:05 +03:00
Anna Shaleva
e63a93b8a0
compiler: add tests for System.Runtime.CurrentSigners
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-11-20 14:49:07 +03:00
Roman Khimov
19c59c3a59
Merge pull request #3149 from nspcc-dev/fix-compiler-version-race
...
internal: avoid race access to config.Version by tests
2023-10-10 12:23:08 +03:00
Anna Shaleva
eeb439f548
internal: avoid race access to config.Version by tests
...
Network server constructor reads config.Version variable, and
testcli.DeployContract writes dummy config.Version which causes
race in tests. Avoid this race by moving config.Version initialisation
to a separate package and perform it inside test packages init().
Close #3011 , close #3017 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-10-10 11:59:53 +03:00
Evgenii Stratonikov
96ee2e2b2d
compiler: Fix emitting big uint64 constants
...
Currently we take int64 value from the Go parser and push it to the
stack. Using uint64 is not a common practice (usually we just use `int`),
but can be a problem while doing bit arithmetic and serializing numbers.
Signed-off-by: Evgenii Stratonikov <fyfyrchik@runbox.com>
2023-10-05 16:03:57 +03:00
Anna Shaleva
0a3260c22c
examples: add compatibility example for Groth16 veification
...
Port the C# contract provided in the
https://github.com/neo-project/neo/issues/2647#issuecomment-1129849870 and
add an integration test for it. Part of the #3002 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-10-05 11:01:25 +03:00
Roman Khimov
fff7e91709
dao: simplify NewSimple()
...
We no longer need P2PSigExtension flag here, conflicts attribute is a part
of the normal protocol.
Signed-off-by: Roman Khimov <roman@nspcc.ru>
2023-09-04 16:56:59 +03:00
Roman Khimov
227b0c5480
Merge pull request #3041 from nspcc-dev/generic-decl
...
compiler: temporary disallow generics usages
2023-08-18 21:24:56 +03:00
Anna Shaleva
2872c1c668
core: move contract notifications check under HFBasilisk
...
Follow the https://github.com/neo-project/neo/pull/2884 .
A part of the https://github.com/neo-project/neo/pull/2810 .
Fix failing tests along the way (a lot of them have invalid notifications
format which differs from the one declared in manifest).
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-18 16:40:20 +03:00
Anna Shaleva
35c3b65c8a
compiler: disallow generic type decl
...
Need to be reverted and properly handled within the scope of #2376 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-18 16:02:40 +03:00
Anna Shaleva
380de580a7
compiler: disallow generic function parameter types
...
Need to be reverted and properly handled within the scope of #2376 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-18 16:02:40 +03:00
Anna Shaleva
1b1b454ce4
compiler: disallow generic method receiver
...
Either non-pointer or pointer, both cases are disallowed to be generic.
Need to be reverted and properly handled within the scope of #2376 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-18 16:02:39 +03:00
Anna Shaleva
415d44792a
compiler: properly retrieve name of generic functions
...
Fix panic described in #3040 . Ref. #2376 .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-18 16:00:54 +03:00
Anna Shaleva
d1fe64470d
compiler: fix sequence point boundaries
...
Thanks to @fyrchik , see the
https://github.com/neo-project/neo-devpack-dotnet/pull/154/files#diff-ebf53d00d5ba1f1197fedd2b8111fe9a8f44fb96699ef1314d54d05d5ceeb3f3R27
See also the standard:
https://github.com/neo-project/proposals/blob/master/nep-19.mediawiki#method .
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-11 20:16:02 +03:00
Anna Shaleva
5b12be2ac7
compiler: add test for util.AbortMsg and util.AssertMsg
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-08-10 12:54:07 +03:00
Anna Shaleva
44dfe8342d
compiler: disallow named types redeclaration via contract config
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:53:43 +03:00
Anna Shaleva
865bd6c9cc
compiler: compare emitted event params if --guess-eventtypes enabled
...
In this case emitted event parameters should match from invocation to
invocation. It's an error otherwise (and if the type is not Any).
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:53:43 +03:00
Anna Shaleva
6379bcc15a
compiler: properly set extended type name for unnamed structs
...
After the struct was registered as "unnamed", it has the own unique name.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:53:43 +03:00
Anna Shaleva
37af2031bb
rpcbinding: properly add imports for simple types of event parameters
...
There are two ways of doing this: first one is to emit all notifications
parameter data into rpcbindings configuration on compile time (event if
the parameter has a simple type), and the second one is to fetch parameter
type from the manifest on rpcbinding file generation if needed (we always
have manifest at this stage, thus it's not a problem to retrieve necessary
information). The latter case is chosen to reduce the bindings configuration
file size.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:53:43 +03:00
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
e2580187a1
cli: fetch extended evet types from contract config
...
The user should specify it via parameter's `extendedtype` field and
via upper-level `namedtypes` field of the contract configuration YAML.
Also, as we have proper event structure source, make the `--guess-eventtype`
compilation option and make event types guess optional.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:53:41 +03:00
Anna Shaleva
194639bb15
compiler: fix typo in the method description
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:52:41 +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
d5bea0ad4c
core: add Backwards option for storage iterators
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-04-12 16:45:38 +03:00
Roman Khimov
5322a3535b
Merge pull request #2940 from nspcc-dev/groth16
...
core: add BLS12_381 interops
2023-04-10 10:20:17 +03:00
Roman Khimov
e2cf5b868a
Merge pull request #2941 from nspcc-dev/drop-deprecated-0.102.0
...
Drop some deprecated things in 0.102.0
2023-04-06 10:42:26 +03:00
Anna Shaleva
69102a6aa3
interop: add groth16 interop API
2023-04-05 15:37:50 +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
4671fbb3be
interop: drop deprecated util.FromAddress
...
It still was used in a number of places, surprisingly.
2023-03-18 10:44:12 +03:00
Roman Khimov
8305389852
compiler: don't panic, return error for strange range loops
...
See #2870 .
2023-01-11 16:21:40 +03:00
Roman Khimov
92acc71c80
compiler: create new locals for range loops when needed, fix #2855
2023-01-11 15:49:10 +03:00
Anna Shaleva
82221b0ca7
*: fix Neo and NeoGo misuses
2022-12-07 17:29:09 +03:00
Roman Khimov
cad0fab704
Merge pull request #2828 from nspcc-dev/rpcwrapper-structures
...
Handle structures in the RPC wrapper generator
2022-12-06 21:40:16 +07:00
Roman Khimov
2bcf3a4ad5
compiler: unwrap pointers for debug types
...
We have almost no difference between Type and *Type.
2022-12-06 13:15:10 +03:00
Roman Khimov
d7fafea328
compiler: handle ledger/management enums better for debug
...
Fix scAndVMInteropTypeFromExpr(), these types are not structures at all.
2022-12-06 13:15:10 +03:00
Roman Khimov
0f61a13006
compiler: Contract type is in the management package
2022-12-06 13:15:10 +03:00
Roman Khimov
b9d20b32e9
compiler: push additional type data into the bindings file
...
Structures/arrays and maps.
2022-12-06 13:15:10 +03:00
Roman Khimov
4ce968e4d0
*: update interops, add tests for new management methods
2022-12-02 10:57:05 +03:00
Roman Khimov
07e32e221d
*: update interops, add System.Runtime.LoadScript wrapper check
2022-11-25 15:16:27 +03:00
Roman Khimov
027e94fbde
compiler: don't push overrides for unexported methods
...
They're internal, no one cares about them externally.
2022-11-23 17:05:37 +03:00
Roman Khimov
2bcb7bd06f
compiler: don't use (*VM).Istack when it's not needed
2022-11-17 20:46:06 +03:00
Roman Khimov
4e58bd7411
compiler: use shorter and cheaper sequence to convert to Boolean
2022-10-25 18:20:55 +03:00
Roman Khimov
8893163803
smartcontract: define parameter lengths as constants and use them
2022-10-05 10:46:21 +03:00
Roman Khimov
7d0840d5d5
Merge pull request #2720 from nspcc-dev/notifications-check
...
compiler: enforce runtime.Notify parameters cast to proper type
2022-10-01 03:02:29 +07:00