Commit graph

3972 commits

Author SHA1 Message Date
Evgeniy Stratonikov
7577bbef22 compiler: copy locals slice during inline
Consider function call `f(1, g(2, 3))` when
both `f` and `g` are inlined. If `f` contains some locals,
inlining `g` will replace them with it's another locals map,
because slices in Go reuse storage on `append`.
Thus scope needs to be copied.
2021-03-01 11:48:42 +03:00
Evgeniy Stratonikov
b66b853285 compiler: drop stack after inline
Some control-flow statements drop stack items, for example
`return` when it is used inside of `range` loop.
For inlined calls this `return` should drop only portion of stack
which belongs to inlined call.
2021-03-01 11:48:42 +03:00
Roman Khimov
347212c0c5
Merge pull request #1781 from nspcc-dev/ci-tests
github: add tests workflow
2021-03-01 11:34:26 +03:00
Anna Shaleva
552ab1f8fe github: add tests workflow 2021-02-26 17:53:31 +03:00
Roman Khimov
50e330a9c8
Merge pull request #1773 from nspcc-dev/detailed-rpc-error
rpc: detalize `submit*` RPC validation error
2021-02-26 17:03:18 +03:00
Roman Khimov
d33291c377
Merge pull request #1780 from nspcc-dev/ci-cache-fix
github: fix go mod cache
2021-02-26 14:04:57 +03:00
Roman Khimov
b4dfb4691d
Merge pull request #1778 from nspcc-dev/ci-fix-latest
github: publish as 'latest' only master releases
2021-02-26 13:38:46 +03:00
Anna Shaleva
a26791ea5a github: fix go mod cache
* Fix cache folder
* Verbose `go mod download`
2021-02-26 12:10:10 +03:00
Anna Shaleva
2845d168ea docs: update README 2021-02-26 11:02:12 +03:00
Anna Shaleva
2fbbadeb56 rpc: detalize submit* RPC validation error
These changes do not break the compatibility with the C# node response.

It is useful for the end-user to be aware of the failed validation reason.
Also, the `cause` will be displayed at the running node log.
2021-02-25 19:18:57 +03:00
Roman Khimov
f264996f74
Merge pull request #1777 from nspcc-dev/fix/vote
core: fix native method call flags
2021-02-25 18:55:10 +03:00
Anna Shaleva
950041c7a5 Makefile: remove push-to-registry target
It is unused and outdated.
2021-02-25 18:41:01 +03:00
Anna Shaleva
dc610cdb7c github: tag as 'latest' only released images 2021-02-25 18:38:59 +03:00
Evgeniy Stratonikov
663afbe4df core: check call flags in LoadToken
Follow neo-project/neo#2292.
2021-02-25 18:14:52 +03:00
Evgeniy Stratonikov
4db5ef05f8 core: fix call flags for System.Contract.Call
Follow neo-project/neo#2292.
2021-02-25 18:12:38 +03:00
Evgeniy Stratonikov
cbda20aca3 core: fix native method call flags
Replace `WriteStates` with `States`.

Follow neo-project/neo#2339.
Close #1775.
Related #1725.
2021-02-25 18:07:33 +03:00
Roman Khimov
345d6f059e
Merge pull request #1776 from nspcc-dev/ci-manual
github: allow to publish image from any ref
2021-02-25 17:02:13 +03:00
Anna Shaleva
d628b6a33d github: allow to publish image from any ref
It will help us to publish previous releases or intermediate refs.
2021-02-25 16:52:25 +03:00
Roman Khimov
549596bc1f
Merge pull request #1774 from nspcc-dev/fix/compiler
Allow to use inlined functions during global var init
2021-02-25 16:16:21 +03:00
Roman Khimov
7cf22d00dd
Merge pull request #1769 from nspcc-dev/ci-dockerhub
github: setup github workflow to publish to DockerHub
2021-02-25 15:22:20 +03:00
Evgeniy Stratonikov
0a4ff9d3e4 compiler: allow to use inlined functions to init globals 2021-02-25 15:12:16 +03:00
Evgeniy Stratonikov
ac91de80e7 interop: fix Base58Decode interop 2021-02-25 15:11:52 +03:00
Anna Shaleva
a1245cd381 github: publish only released images 2021-02-25 14:54:14 +03:00
Anna Shaleva
7dfdbcd456 github: setup github workflow to publish to DockerHub
This workflow tags and publishes images to Dockerhub:
   * Every `push` to `master` branch
   * Every release

For successful workflow runs the following secrets need to be set in the
repository `Secrets` section:
   * `DOCKERHUB_USERNAME` - the username to publish images to DockerHub
   * `DOCKERHUB_PASSWORD` - the password of `DOCKERHUB_USERNAME`
2021-02-25 13:49:59 +03:00
Anna Shaleva
81ea4bbfcf core: update oracle test
It is failing from time to time.
2021-02-25 11:20:28 +03:00
Roman Khimov
492a89eb02
Merge pull request #1771 from nspcc-dev/circleci-fix
circleci: update Go build version
2021-02-25 00:35:13 +03:00
Anna Shaleva
d5bc65eed4 circleci: update Go build version 2021-02-24 23:20:16 +03:00
Roman Khimov
46fbd940fe
Merge pull request #1720 from nspcc-dev/compiler/syscall
Refactor syscall handing
2021-02-24 19:31:52 +03:00
Roman Khimov
fdcd8c2209
Merge pull request #1768 from nspcc-dev/notary-tx-fix
services: update Notary transaction size after completion
2021-02-24 12:53:28 +03:00
Evgeniy Stratonikov
df5314f286 compiler: refactor syscall handling
Close #941.
2021-02-24 12:51:15 +03:00
Evgeniy Stratonikov
f7b9861c11 compiler: count locals for vararg inline functions 2021-02-24 12:45:47 +03:00
Anna Shaleva
988dfcc7fe services: update Notary transaction size after completion
Close #1766
2021-02-24 12:38:32 +03:00
Roman Khimov
abee3b5b05
Merge pull request #1722 from nspcc-dev/fix/nep11
smartcontract: add NEP-11 standard check
2021-02-22 22:27:09 +03:00
Roman Khimov
61e04f04de
Merge pull request #1763 from nspcc-dev/multisig-interop
core: add System.Contract.CreateMultisigAccount
2021-02-19 18:15:33 +03:00
Anna Shaleva
c82b11eebe compiler: add CreateMultisigAccount interop 2021-02-19 17:34:23 +03:00
Anna Shaleva
5a37201319 core: add System.Contract.CreateMultisigAccount interop 2021-02-19 17:31:50 +03:00
Evgeniy Stratonikov
b38443fe20 smartcontract: add checks for onNEP*Payable methods
When they are present in contract, we want them
to have correct signature.
2021-02-19 17:06:07 +03:00
Evgeniy Stratonikov
d89f055697 smartcontract: add checks for parameter names
It can be annoying to use parameter names as specified by standard,
so a separate `CheckABI` is supported.
2021-02-19 17:06:07 +03:00
Evgeniy Stratonikov
9d4ccf0fcc smartcontract: add test for Optional methods
They should be checked only if name + parameter count matches.
This is how methods are identified in NEO.
2021-02-19 17:06:07 +03:00
Evgeniy Stratonikov
ae30e30321 native: add NEP-11 check for name service 2021-02-19 17:06:07 +03:00
Evgeniy Stratonikov
eb26a61078 smartcontract: remove IsNEP17() 2021-02-19 17:06:07 +03:00
Evgeniy Stratonikov
9c0bbd0bfd smartcontract: add NEP-11 standard check
The only method missing is name, because it is
provided in manifest.
2021-02-19 17:06:07 +03:00
Roman Khimov
c58dc7e453
Merge pull request #1758 from nspcc-dev/cli/0x
cli: support Uint160 hashes with 0x prefix
2021-02-19 16:23:56 +03:00
Roman Khimov
7f6a0fd98c
Merge pull request #1762 from nspcc-dev/cli/files
cli: add `filebytes` parameter type
2021-02-19 11:14:02 +03:00
Anna Shaleva
488e75a246 cli: add filebytes parameter type 2021-02-19 10:52:45 +03:00
Evgeniy Stratonikov
b8024dbfa8 cli: support Uint160 hashes with 0x prefix 2021-02-18 14:38:50 +03:00
Roman Khimov
fe918e28f2
Merge pull request #1757 from nspcc-dev/logs
network: add logs for different RelayTx errors
2021-02-18 13:13:25 +03:00
Evgeniy Stratonikov
3f7bea4e99 cli/flags: allow to use hashes in address flag 2021-02-18 12:50:20 +03:00
Anna Shaleva
94430ef3ca network: refactor RelayTx error handling
We don't need to wrap different core errors in server. Also it would be
good to provede more error info to the user.
2021-02-18 12:40:40 +03:00
Roman Khimov
f5767ec710
Merge pull request #1750 from nspcc-dev/compiler/append
Append bytes bigger than 0x79 properly
2021-02-17 17:25:33 +03:00