Evgenii Stratonikov
f2cb1d5f02
compiler: use constants in interops
...
We now support using exported constants, so there is no
need in declaring functions. All functions from `interop/`
are not to be compiled.
Fix #1298 .
2020-08-10 17:52:31 +03:00
Roman Khimov
0b96e6a048
Merge pull request #1293 from nspcc-dev/fix/return
...
Check return values count for external contract calls
2020-08-10 16:22:23 +03:00
Roman Khimov
f54d345f68
Merge pull request #1297 from nspcc-dev/config/fix
...
config: add ValidatorsCount to default privnet configuraton
2020-08-10 16:06:19 +03:00
Anna Shaleva
b92e90636e
config: add ValidatorsCount to default privnet configuraton
...
This commit prevents the following error while starting default privnet
node:
```
2020-08-10T15:23:35.733+0300 INFO restoring blockchain {"version": "0.1.0"}
could not initialize blockchain: param m cannot be smaller or equal to 1 got 0
```
2020-08-10 15:36:38 +03:00
Evgenii Stratonikov
bf01599430
vm: check return value on context unload
...
When calling external contracts we expect exactly 1 value to be on
stack. For methods returning nothing, `Null` value is pushed, otherwise
it is an error.`
2020-08-10 11:52:33 +03:00
Evgenii Stratonikov
bbae7318a5
smartcontract: adjust param types according to NEO3
2020-08-10 11:14:48 +03:00
Evgenii Stratonikov
b65369e111
emit: remove unused functions
2020-08-10 11:14:48 +03:00
Roman Khimov
4aeaf05f90
Merge pull request #1289 from nspcc-dev/fix/nep5
...
Port `getnep5transfers` changes to master
2020-08-10 11:11:24 +03:00
Roman Khimov
08ca8d3365
Merge pull request #1290 from nspcc-dev/fix/tests
...
core: fix failing tests after merge
2020-08-10 10:20:53 +03:00
Evgenii Stratonikov
14aba7fc80
core: fix failing tests after merge
...
Related f5131491b
.
2020-08-10 09:20:34 +03:00
Roman Khimov
f5131491b7
Merge pull request #1271 from nspcc-dev/core/call_from_native
...
core: contractCall from native contracts
2020-08-07 21:24:50 +03:00
Anna Shaleva
c87e2262c3
core: remove ScriptHashGetter from interop context
...
We have VM inside the context, so don't need ScriptHashGetter anymore.
2020-08-07 20:31:20 +03:00
Anna Shaleva
42736095a1
core: add test to call contract from native
...
Closes #1200
2020-08-07 20:31:16 +03:00
Evgenii Stratonikov
412fc53cdd
rpc: provide timestamps in getnep5transfers
...
Set default value for the first timestamp to a week ago.
2020-08-07 18:42:34 +03:00
Evgenii Stratonikov
807338f97e
core: do not store NEP5 transfer log in memory
...
Traversing transfer log instead of accumulating and returning it
is faster and takes less memory.
2020-08-07 18:21:06 +03:00
Anna Shaleva
995053f2eb
core: add VM into interop context
2020-08-07 16:15:24 +03:00
Roman Khimov
c3c88a57cd
Merge pull request #1281 from nspcc-dev/drop-go-1.12-and-fix-some-things
...
Drop go 1.12 and fix some things
2020-08-07 13:34:54 +03:00
Roman Khimov
d5a9d80c12
core: refactor out policy check for transaction
...
We were checking blocked accounts twice which is obviously excessive. We also
have our accounts sorted, so we can rely on that in CheckPolicy(). It also
doesn't make much sense to check MaxBlockSystemFee in Blockchain code, policy
contract can handle that.
2020-08-07 12:21:52 +03:00
Roman Khimov
90180c6fb6
native: pass DAO to CheckPolicy(), it doesn't need interop context
...
Simplify things a bit.
2020-08-07 12:21:52 +03:00
Roman Khimov
791c983304
core: drop GetScriptHashesForVerifying
...
It no longer depends on blockchain state and there can't ever be an error, in
fact we can always iterate over signers, so copying these hashes doesn't make
much sense at all as well as sorting arrays in verifyTxWitnesses (witnesses
order must match signers order).
2020-08-07 12:21:52 +03:00
Roman Khimov
c19838ea67
core: use errors.Is in PoolTx
...
Just in case.
2020-08-07 12:21:52 +03:00
Roman Khimov
4c38fae54c
core: fix mempool error check in PoolTx
...
ErrAlreadyExists should be returned for ErrDup, not ErrConflict.
2020-08-07 12:21:52 +03:00
Roman Khimov
0e2784cd2c
always wrap errors when creating new ones with fmt.Errorf()
...
It doesn't really change anything in most of the cases, but it's a useful
habit anyway.
Fix #350 .
2020-08-07 12:21:52 +03:00
Roman Khimov
205f52c563
core: use error wrapping to provide more details
2020-08-07 12:21:52 +03:00
Roman Khimov
5ef08f60ae
remove github.com/pkg/errors from dependencies
...
It's not needed any more with Go 1.13 as we have wrapping/unwrapping in base
packages. All errors.Wrap calls are replaced with fmt.Errorf, some strings are
improved along the way.
2020-08-07 12:21:52 +03:00
Roman Khimov
d571162173
Merge pull request #1252 from nspcc-dev/fix/voting
...
Implement delegated voting
2020-08-07 10:38:32 +03:00
Evgenii Stratonikov
bfda60c683
native: add missing witness checks to NEO.(Un)registerCandidate
2020-08-07 09:17:02 +03:00
Evgenii Stratonikov
8af3f05358
native: implement NEO.UnregisterCandidate
method
2020-08-06 20:39:13 +03:00
Evgenii Stratonikov
38a92323c9
native: fill votes when registering unregistered candidate
...
If a candidate was registered, then unregistered and then again
registered, it's votes must not be lost.
2020-08-06 20:39:13 +03:00
Evgenii Stratonikov
27169d140f
core: implement (*Blockchain).GetStandByCommitee()
2020-08-06 20:39:13 +03:00
Evgenii Stratonikov
05c24d9401
cli: support voting
...
Closes #1206 .
2020-08-06 20:39:13 +03:00
Evgenii Stratonikov
a3f419f8df
emit: allow to emit Null
2020-08-06 20:39:13 +03:00
Evgenii Stratonikov
e5d973d3a4
config: rename StandbyValidators to StandbyCommittee
2020-08-06 20:39:13 +03:00
Evgenii Stratonikov
b14b047c78
native: add tests for delegated voting
2020-08-06 20:39:13 +03:00
Evgenii Stratonikov
9bc731b3b1
native: implement delegated voting
...
Close #867 .
2020-08-06 20:39:13 +03:00
Roman Khimov
6e5920cc09
use -trimpath build flag for more reproducible builds
...
Fix #349 .
2020-08-06 16:32:36 +03:00
Roman Khimov
eee457ae49
drop support for Go 1.12
...
It's old and not maintained. Use latest Go for builds and test only with 1.13
and 1.14.
2020-08-06 16:29:55 +03:00
Evgenii Stratonikov
f0b62cdaa6
native: make *totalSupply accept DAO
...
There is no need to provide full interop context.
2020-08-06 14:26:24 +03:00
Evgenii Stratonikov
3e39f0f211
native: rename Validator to Candidate
2020-08-06 14:26:24 +03:00
Roman Khimov
e1d3223505
Merge pull request #1247 from nspcc-dev/feature/pointers
...
Support pointers in compiler
2020-08-06 13:53:08 +03:00
Roman Khimov
5e53aceb0f
Merge pull request #1277 from nspcc-dev/restrict-verification-call-flags
...
core: restrict verification scripts with CallFlags.None
2020-08-06 13:52:14 +03:00
Evgenii Stratonikov
5b78bb2e55
docs: describe pointer support in compiler.md
2020-08-06 13:43:40 +03:00
Roman Khimov
57ee8b80e5
Merge pull request #1246 from nspcc-dev/protocol/getblockbyindex
...
protocol: request blocks by index
2020-08-05 23:21:07 +03:00
Roman Khimov
f5fbef165a
Merge pull request #1259 from nspcc-dev/fix/notifications
...
Disallow changing notifications
2020-08-05 19:50:45 +03:00
Roman Khimov
b7f89b0544
core: restrict verification scripts with CallFlags.None
...
Follow neo-project/neo#1776 . Looks very suspicious to me as it severely limits
verification scripts, but we have to be compatible at this point.
2020-08-05 19:17:48 +03:00
Roman Khimov
fced917b71
Merge pull request #1261 from nspcc-dev/feature/init
...
compiler: allow to use `init` function
2020-08-05 19:04:51 +03:00
Roman Khimov
f232d477af
Merge pull request #1269 from nspcc-dev/fix-cli-util-lint-error
...
cli/util: fix lint error introduced by 227c6a2ca
2020-08-05 13:31:32 +03:00
Roman Khimov
b0f0dc5352
cli/util: fix lint error introduced by 227c6a2ca
2020-08-05 13:17:23 +03:00
Evgenii Stratonikov
f2107bfbc4
compiler: copy structs when passing as arguments
...
In Go structs must be copied when used as arguments.
To do so we must clone struct on VM level.
This is done by appending this struct to an intermediate array.
2020-08-05 13:14:38 +03:00
Evgenii Stratonikov
4488f61777
compiler: compile init
even if there are no globals
...
`init` can be useful even if no globals are present,
e.g. we can use some syscall inside.
2020-08-05 12:59:53 +03:00