Roman Khimov
f5f58a7e91
keys: add simple LRU key cache for 1024 elements
...
The cost of Y calculation from X is comparable with signature check, so it
reduces witness check overhead by ~30% for cached keys and gives ~5% overall
boost in TPS.
2020-09-09 20:46:31 +03:00
Roman Khimov
0ea8c8ba67
mempool: drop a level of indirection
...
`item` is so small that it makes no sense bothering memory allocator with
every instance of it.
2020-09-09 20:46:31 +03:00
Roman Khimov
53c014a0bb
crypto/consensus: sign hashes and cache them for consensus payloads
...
Avoid serializing payload again and again for various purposes. To sign it, we
only need a hash.
Some 2.4% gain in TPS could be achieved with this.
2020-09-09 20:46:31 +03:00
Evgenii Stratonikov
b319f127e7
interop: make Base*Encode
return string
2020-09-09 13:10:38 +03:00
Evgenii Stratonikov
37f7363386
interop: return struct pointers where needed
...
`Transaction`, `Block` and `Contract` are represented as
`Array`s in VM, so we must return pointers.
Revert a1f98f92
.
2020-09-09 13:10:04 +03:00
Evgenii Stratonikov
25f8545cdf
compiler: extend manifest generation with custom types
2020-09-09 13:06:44 +03:00
Evgenii Stratonikov
cee1836183
interop: provide missing smartcontract parameter type defs
...
Contract can have Hash160, Hash256, Signature etc. types which
all map to a `[]byte` in Go. Having synonyms helps us to generate
proper manifest file.
2020-09-09 13:06:44 +03:00
Roman Khimov
49e9c1aa0f
Merge pull request #1387 from nspcc-dev/rpc/notifications_state_serialisation
...
rpc: replace result.ApplicationLog with state.AppExecResult
2020-09-07 17:48:08 +03:00
Roman Khimov
cf322cd9f4
Merge pull request #1391 from nspcc-dev/compiler/const
...
Small compiler improvements
2020-09-07 17:46:41 +03:00
Roman Khimov
77ff84932b
Merge pull request #1390 from nspcc-dev/fix/persist
...
core: do not persist Policy contract
2020-09-07 15:39:01 +03:00
Anna Shaleva
27348973c3
rpc: fix JSON marshalling for Invoke result
...
We should return a quote string as JSON value in case of recursive
reference, otherwise json.Marshal returns an error.
2020-09-07 13:57:45 +03:00
Anna Shaleva
acacac1b24
rpc: use state.AppExecResult for ApplicationLog marshalling
...
Closes #1371
2020-09-07 13:38:32 +03:00
Anna Shaleva
34df5d5949
smartcontract: update trigger.Type stringer
...
We have to explicitly specify the type of `All` trigger type for proper
automatic generation of string representation.
2020-09-07 11:13:58 +03:00
Evgenii Stratonikov
7483e3b054
compiler: support delete()
builtin
2020-09-06 15:49:41 +03:00
Evgenii Stratonikov
18369c489e
compiler: do not allocate slotes for unused "_" vars
2020-09-06 15:27:46 +03:00
Evgenii Stratonikov
0b44a43043
compiler: do not allocate static slot for constants
...
Their value is known at compile time.
2020-09-06 15:20:17 +03:00
Evgenii Stratonikov
230700ee81
core: do not persist Policy contract
...
It has nothing to persist.
2020-09-05 10:54:47 +03:00
Roman Khimov
18204ec21a
Merge pull request #1383 from nspcc-dev/compiler/switchtag
...
compiler: fix a bug with type conversion in switch
2020-09-03 14:40:17 +03:00
Roman Khimov
cf15ca30f5
Merge pull request #1382 from nspcc-dev/compiler/manifest_methods_fix
...
compiler: do not convert methods to manifest methods
2020-09-03 14:39:51 +03:00
Anna Shaleva
70a58b6522
compiler: do not convert methods to manifest methods
...
Close #1381
2020-09-02 22:41:54 +03:00
Anna Shaleva
058da7c2bd
compiler: getFuncNameFromDecl for methods on pointers
...
Declaration has *ast.StarExpr type in case of method on pointer.
2020-09-02 22:41:54 +03:00
Roman Khimov
d40a730e5a
Merge pull request #1380 from nspcc-dev/examples/token_sale_fix
...
examples: fix AddToCirculation method of TokenSale
2020-09-02 21:44:30 +03:00
Roman Khimov
d91836c9dd
Merge pull request #1384 from nspcc-dev/network/blockcache
...
network: restrict block queue size
2020-09-02 20:00:47 +03:00
Evgenii Stratonikov
98ca17aab8
network: restrict block queue size
...
Close #1374 .
2020-09-02 17:04:49 +03:00
Evgenii Stratonikov
74dda0ac66
compiler: allow to use type conversion in range
2020-09-02 15:35:20 +03:00
Evgenii Stratonikov
3af7ce8c6b
compiler: allow to use copy()
return value
2020-09-02 15:29:59 +03:00
Evgenii Stratonikov
3d8c7af66c
compiler: handle void call to recover()
...
Other builtins such as `len` and `make` can be ignored,
because not-assigning `make` result is catched by parser.
2020-09-02 15:20:43 +03:00
Evgenii Stratonikov
7d61a567d5
compiler: fix a bug with type conversion in switch
...
It was incorrectly parsed as void call.
2020-09-02 14:48:19 +03:00
Anna Shaleva
4fdcefc87c
examples: fix AddToCirculation method of TokenSale
...
Closes #1379
We should check owner witness before adding more tokens to circulation.
Also we shouldn't allow to add to circulation more than TokenSupply
tokens.
2020-09-01 12:01:21 +03:00
Roman Khimov
7560aa345a
Merge pull request #1370 from nspcc-dev/fix/committee
...
Add committee to unit test chain, fix some bugs
2020-08-27 21:46:17 +03:00
Evgenii Stratonikov
1788cf02a1
core: fix VerifyTX test
...
HighPriority attribute was lost during intermediate code changes.
2020-08-27 18:40:37 +03:00
Evgenii Stratonikov
dce456f77f
native: fix a bug in GetCommitteeMembers
...
Return standby committee instead of validators.
2020-08-27 18:40:37 +03:00
Evgenii Stratonikov
b0c051b817
internal: extend committee for unit tests
...
Committee should differ from the set of validators, to catch
possible bugs during testing.
2020-08-27 18:40:36 +03:00
Roman Khimov
3468f97836
Merge pull request #1343 from nspcc-dev/compiler/recover
...
Support `defer` statement
2020-08-27 17:33:12 +03:00
Roman Khimov
5d306297e9
Merge pull request #1367 from nspcc-dev/rpc/array_func_params
...
rpc: allow to use arrays in expandArrayIntoScript
2020-08-27 17:31:07 +03:00
Roman Khimov
9e0c13b69d
Merge pull request #1362 from nspcc-dev/feature/verification
...
Allow to use account with contracts on client
2020-08-27 17:30:29 +03:00
Anna Shaleva
5e8ce45a84
rpc: allow to use arrays in expandArrayIntoScript
...
Should be done together with #1363 . Also removed
CreateInvocationScript function as we don't have `Invoke` RPC-call
anymore.
2020-08-27 16:38:45 +03:00
Roman Khimov
96f6ff9c8a
Merge pull request #1368 from nspcc-dev/fix/getapplog
...
rpc: support 0x form of Uint256 in requests
2020-08-27 13:35:38 +03:00
Roman Khimov
ed2061fd24
Merge pull request #1365 from nspcc-dev/smartcontract/max_manifest_size
...
smartcontract: increase MaxManifestSize
2020-08-27 12:54:02 +03:00
Evgenii Stratonikov
db4eecf4dc
rpc: support 0x form of Uint256 in requests
2020-08-27 12:36:33 +03:00
Anna Shaleva
e1a266ab86
smartcontract: increase MaxManifestSize
2020-08-27 11:50:09 +03:00
Evgenii Stratonikov
cdfb2429f2
cli: allow to create accounts for deployed contracts
2020-08-27 11:32:55 +03:00
Evgenii Stratonikov
9c7168e4e8
rpc/client: allow to use contract accounts in AddNetworkFee
2020-08-27 11:32:55 +03:00
Evgenii Stratonikov
f6319f80e8
interop: allow to call CheckWitness without AllowStates
...
State access is needed only in specific circumstances.
2020-08-27 10:29:29 +03:00
Evgenii Stratonikov
f2d49cd1d6
docs: update compiler.md
2020-08-27 10:28:50 +03:00
Evgenii Stratonikov
5d82b82efb
compiler: support recover()
2020-08-27 10:28:50 +03:00
Evgenii Stratonikov
14ea3c2228
compiler: do not log panic message
...
In NEO3 THROW accepts an argument and exceptions can be handled, so
there is no need to log it.
2020-08-27 10:28:50 +03:00
Evgenii Stratonikov
04f5fdefa0
vm: properly unload context on exception
...
Do not copy exception context on CALL*.
2020-08-27 10:28:50 +03:00
Evgenii Stratonikov
fa1d1a8b00
compiler: support defer
statement
...
Compile `defer` statement to a TRY/ENDFINALLY opcode pair.
2020-08-27 10:28:50 +03:00
Evgenii Stratonikov
b18a7f200c
compiler: calculate local variables properly
...
In case when right-hand side of an assignment is a function,
left-hand side should be used.
2020-08-27 10:28:50 +03:00