Commit graph

3521 commits

Author SHA1 Message Date
Roman Khimov
679846c1a1
Merge pull request #1426 from nspcc-dev/rpc/getcontractstate_by_id_or_name
rpc: allow to `getcontractstate` by id or name
2020-11-05 13:17:42 +03:00
Anna Shaleva
fc018afb95 docs: adjust invokefunction documentation 2020-11-05 10:37:06 +03:00
Anna Shaleva
2f9d64821f cli: add ExitError where needed 2020-11-05 10:37:06 +03:00
Roman Khimov
2ca5b27818
Merge pull request #1517 from nspcc-dev/update-storage-fee-logic
core: adjust storage update fees
2020-11-04 09:31:02 +03:00
Roman Khimov
d7502debba core: adjust storage update fees
Follow neo-project/neo#2033.
2020-11-03 22:50:40 +03:00
Anna Shaleva
b8a88f9378 rpc: allow to use address, id or name instead of scripthash [Client]
... for getcontractstate RPC client method.
2020-11-03 17:58:24 +03:00
Anna Shaleva
d3daaafbe4 rpc: allow to get contract scripthash from address, id or name [Server]
... for `invokefunction` RPC method.
2020-11-03 17:25:46 +03:00
Anna Shaleva
15a939b1da rpc: allow to getcontractstate by address, id or name
close #1423
2020-11-03 17:23:49 +03:00
Roman Khimov
7121686571
Merge pull request #1515 from nspcc-dev/new-system-triggers
New system triggers
2020-10-30 10:28:36 +03:00
Roman Khimov
eaa260474f trigger/core: split System trigger into OnPerist and PostPersist
Follow neo-project/neo#2022.
2020-10-29 19:17:07 +03:00
Roman Khimov
044786b995 core: use Application trigger in CalculateClaimable()
It doesn't need a System one.
2020-10-29 19:17:07 +03:00
Roman Khimov
2522271161 vm: use Application trigger by default
Don't mess with System, it's too powerful to be the default.
2020-10-29 19:17:07 +03:00
Roman Khimov
2924ecd453 core: use ic.SpawnVM() in tests, not vm.New()
vm.New() sets some arbitrary trigger while interop context always sets
something appropriate according to its state.
2020-10-29 19:17:07 +03:00
Roman Khimov
d4da811d12
Merge pull request #1507 from nspcc-dev/conflicts_attr
core: implement Conflicts transaction attribute
2020-10-29 16:54:58 +03:00
Anna Shaleva
ec63d5c456 core: add conflicts attribute
Close #1491
2020-10-29 10:57:31 +03:00
Roman Khimov
0eb4ad8564
Merge pull request #1508 from nspcc-dev/core/check_witness_tests
core: add CheckWitness tests
2020-10-27 15:56:35 +03:00
Roman Khimov
14d84ce14e
Merge pull request #1510 from nspcc-dev/lower-voting-fee
native: lower voting fee
2020-10-27 15:56:11 +03:00
Roman Khimov
c4a4a84515 native: lower voting fee
Follow neo-project/neo#2010.
2020-10-26 22:12:56 +03:00
Anna Shaleva
5a15e6b54c core: add tests for CheckWitness
Close #1366
2020-10-26 20:30:45 +03:00
Anna Shaleva
204d7f1c6a core: refactor runtime.CheckWitness interop
Removed unreachable code, see
8fed383523

runtime.CheckHashedWitness can only be used for transaction
verification, the other two options from reference implementation (block
and consensus payload) have separate methods for verification.
2020-10-26 20:26:21 +03:00
Roman Khimov
eca1221d22
Merge pull request #1504 from nspcc-dev/core/native_serialisation
core: native serialisation
2020-10-23 18:38:35 +03:00
Anna Shaleva
f259a614de core: add transaction.HasSigner method 2020-10-23 16:32:26 +03:00
Anna Shaleva
0232bbcb0c core: refactor GASRecord handling
We should store each GAS record as
{
    Key: ContractID + RecordsPrefix + RecordID,
    Value: RecordValue,
}
So don't use state.GASRecord for storing anymore. However, it's still
useful to cache GasRecord values by using state.GASRecords, because we
have to keep GASIndexPairs sorted by indexes.
2020-10-23 12:49:12 +03:00
Anna Shaleva
0da01fde7f core: refactor blocked accounts logic 2020-10-23 11:42:30 +03:00
Roman Khimov
1956f2c079
Merge pull request #1496 from nspcc-dev/signatures-collection
core: implement NotValidBefore and Reserved tx attributes
2020-10-23 11:26:49 +03:00
Anna Shaleva
7947e99a1e core: add transaction.GetAttributes 2020-10-23 11:05:03 +03:00
Anna Shaleva
95630b72e8 core: verify transaction attributes before adding it into mempool
Attributes check should be done before adding transaction to
the pool, otherwise there might be a case when transaction with invalid
attributes is in the pool.
2020-10-23 11:05:03 +03:00
Anna Shaleva
a6579a05ac core: refactor transaction.Attribute unmarshalling 2020-10-23 11:05:03 +03:00
Anna Shaleva
09b8b8de73 core: reserve attributes range for experimantal purposes 2020-10-23 11:04:59 +03:00
Anna Shaleva
368ff820b3 core: add NotValidBefore transaction attribute
Close #1490
2020-10-23 11:02:46 +03:00
Anna Shaleva
6685f8eba9 core: restrict the maximum number of requests per URL 2020-10-22 11:32:02 +03:00
Anna Shaleva
7c232e2ddc core: add max nodes count restriction to designate contract 2020-10-22 11:32:02 +03:00
Roman Khimov
5bba9c158a
Merge pull request #1502 from nspcc-dev/cli/fix_network_args
cli: fixed removed network arguments
2020-10-21 18:14:22 +03:00
Anna Shaleva
795823ee3b cli: fixed removed network arguments
Should be done in 590be7a58d. I removed
network flags from RPC, but we still need them for server-related
cli commands.
2020-10-21 17:41:23 +03:00
Roman Khimov
8be7cd4bff
Merge pull request #1489 from nspcc-dev/rpc/invoke_with_base64
rpc, cli: use base64 script encoding for Invoke* calls; add Magic to `getversion` RPC call
2020-10-19 16:17:06 +03:00
Roman Khimov
62be070737
Merge pull request #1499 from nspcc-dev/rpc/notifications_subscriptions_fix
rpc: fix Matches and marshalling for notification events
2020-10-19 16:15:39 +03:00
Anna Shaleva
590be7a58d rpc, cli: remove Network from RPC client and cli 2020-10-19 16:11:11 +03:00
Roman Khimov
4da3111767
Merge pull request #1497 from nspcc-dev/compiler/slice
compiler: refactor void calls processing
2020-10-19 13:59:27 +03:00
Anna Shaleva
64d1946fbb rpc: fix Matches and marshalling for notification events
Close #1494. Marshalling went wrong due to the incorrect pointers usage.
Reproduced and fixed.
2020-10-19 13:44:20 +03:00
Anna Shaleva
474d2dfb65 rpc: add Magic to Version 2020-10-19 11:51:27 +03:00
Anna Shaleva
c50f3db6ad rpc, cli: encode script in base64 for Invoke* 2020-10-19 11:51:27 +03:00
Evgenii Stratonikov
01ccaefe2f compiler: refactor void calls processing
Call result is not used only if it occurs inside a `ExprStmt`.
Otherwise (`IfStmt`, `BinExpr`...) it is used.

Fix #1495.
2020-10-19 10:43:47 +03:00
Roman Khimov
d58c50fb77
Merge pull request #1418 from nspcc-dev/rpc/invoke_with_sender
rpc: add tx to invoke* results, support hex for uint160 params
2020-10-17 17:54:12 +03:00
Anna Shaleva
ceb7ea9737 rpc: allow both base58 and hex for Uint160 RPC server parameters
`getunclaimedgas` RPC-call allows to use both base58 and hex
representations for uint160.
2020-10-17 00:42:45 +03:00
Anna Shaleva
19a2e3bb91 rpc: add transaction field to InvokeResult 2020-10-17 00:42:39 +03:00
Roman Khimov
6849499f56
Merge pull request #1493 from nspcc-dev/vm-opcode-bench
vm: add opcode benchmark
2020-10-16 11:02:04 +03:00
Roman Khimov
07770ea4a5
Merge pull request #1492 from nspcc-dev/minor-vm-fixes
Minor VM fixes
2020-10-15 18:10:41 +03:00
Roman Khimov
0709e20fbb vm: add opcode benchmark
For future optimizations and price adjustments.
2020-10-15 16:27:36 +03:00
Roman Khimov
27a01c7759 vm: optimize stack traversal on exception handling
Before:
BenchmarkOpcodes/THROW/0/1-8       10000               506 ns/op
BenchmarkOpcodes/THROW/0/16-8      10000               524 ns/op
BenchmarkOpcodes/THROW/255/0-8     10000             49363 ns/op
BenchmarkOpcodes/THROW/1023/0-8                    10000           1628480 ns/op

After:
BenchmarkOpcodes/THROW/0/1-8       10000               575 ns/op
BenchmarkOpcodes/THROW/0/16-8      10000               516 ns/op
BenchmarkOpcodes/THROW/255/0-8     10000              8290 ns/op
BenchmarkOpcodes/THROW/1023/0-8                    10000             34605 ns/op
2020-10-15 16:20:34 +03:00
Roman Khimov
3d8434a50c vm: fix invocation stack checks
It should be done on every new context push.
2020-10-15 16:20:34 +03:00