Roman Khimov
1b5da8401a
Merge pull request #521 from nspcc-dev/invokefunction
...
Invokefunction
2019-11-27 15:14:29 +03:00
Roman Khimov
e63b25d5ad
smartcontract: add user-facing testinvokefunction command
...
With a very special syntax.
2019-11-27 15:12:15 +03:00
Roman Khimov
c5e2b3ce73
Merge pull request #523 from nspcc-dev/fix-interim-block-changes-store
...
Fix interim block changes store
2019-11-27 14:51:29 +03:00
Vsevolod
1a9e98caf3
Merge pull request #522 from nspcc-dev/fix-invalid-tx-type-handling
...
Fix invalid tx type handling
2019-11-27 13:40:52 +03:00
Roman Khimov
467c9c146d
core: restore intermediate block-level store
...
Commit c80ee952a1
removed temporary store used
to contain changes of the block being processed. It's wrong in that the block
changes should be applied to the database in a single transaction so that
there wouldn't be any intermediate state observed from the outside (which is
possible now). Also, this made changes commiting persist them to the
underlying store effectively making our persist loop a no-op (and not
producing `persist completed` log lines that we love so much).
2019-11-27 13:28:13 +03:00
Roman Khimov
bb765ccfa7
core: gofmt
2019-11-27 13:27:47 +03:00
Roman Khimov
65bf0d01d5
transaction: don't hide decoding error by logging
...
Unknown transaction types are wrong and should be treated as errors.
2019-11-27 13:12:04 +03:00
Roman Khimov
05f3329ec0
vm: add IterBack to the Stack to iterate bottom-to-top
...
And use it to build user-facing stack representation because that's the order
that C# VM uses.
2019-11-27 13:00:11 +03:00
Roman Khimov
f3ed91a1f7
vm: properly convert arrays to stackItems
...
They should be arrays of stackItems, not arrays of values.
2019-11-27 13:00:11 +03:00
Roman Khimov
d04bc0cbe3
rpc: add marshaler for StackParamType
...
Makes stack output look better, no one cares about numbers.
2019-11-27 13:00:11 +03:00
Roman Khimov
d7d7215392
cli: rename testinvoke to testinvokescript
...
To not confuse it with future testinvokefunction.
2019-11-27 13:00:11 +03:00
Roman Khimov
3843451ec4
rpc: fix potential getblock handling problem, add a test for it
...
It should only accept hex strings and numbers, anything else is wrong.
2019-11-27 13:00:11 +03:00
Roman Khimov
1c883cc819
rpc: add invokescript tests
2019-11-27 13:00:11 +03:00
Roman Khimov
cf39171485
rpc: implement invokefunction, fix #347
...
Param getters were redone to return errors because otherwise bad FuncParam
values could lead to panic. FuncParam itself might be not the most elegant
solution, but it works good enough for now.
2019-11-27 13:00:11 +03:00
Evgenii Stratonikov
b5fb43bac9
network: don't reconnect to peers with identical ID
2019-11-27 11:58:17 +03:00
Evgenii Stratonikov
fdd5276d3e
network: plug in dBFT library
2019-11-27 10:57:22 +03:00
Evgenii Stratonikov
5ad665bc37
docker: start all nodes simultaneously
2019-11-26 16:38:41 +03:00
Evgenii Stratonikov
47fa7eb83f
docker: fix a typo in IP address
2019-11-26 16:38:41 +03:00
Vsevolod
34a38ccce1
Merge pull request #518 from nspcc-dev/feat/noerrors
...
core: do not return error in block.getHashableData
2019-11-26 16:20:46 +03:00
Roman Khimov
bbbd0db17c
Merge pull request #515 from nspcc-dev/feat/util_coverage
...
util: add missing tests
2019-11-26 15:41:59 +03:00
Evgenii Stratonikov
af61571ba0
core: do not return error in block.getHashableData
2019-11-26 15:27:37 +03:00
Evgenii Stratonikov
ab922c1810
util: add missing tests for Uint256
2019-11-25 11:55:26 +03:00
Evgenii Stratonikov
d018dc4e56
util: add missing tests for Uint160
2019-11-25 11:55:26 +03:00
Evgenii Stratonikov
18075bc5c8
util: add missing tests for Fixed8
2019-11-25 11:54:59 +03:00
Evgenii Stratonikov
116d4c656e
util: make tests use require
2019-11-25 11:53:49 +03:00
Roman Khimov
ea9bc22510
Merge pull request #513 from nspcc-dev/feat/rpc_param
...
This PR does 3 things:
adds array parameter unmarshalling
extend Param with convenient methods
refactor tests into using tables to make it easier add new tests
(part of #347 solution)
2019-11-22 18:47:59 +03:00
Roman Khimov
eb84ae49da
Merge pull request #508 from nspcc-dev/feature/getvalidators_420
...
core: Implement getvalidators interop
2019-11-22 18:15:08 +03:00
Evgenii Stratonikov
c9d5f8b89c
rpc: cover stack_param with more tests
...
Use require/assert instead of builtin facilities.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2019-11-22 13:20:15 +03:00
Evgenii Stratonikov
0f9024d177
rpc: make client default values constants
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2019-11-22 12:57:10 +03:00
Evgenii Stratonikov
3afcd784f0
rpc: refactor tests
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2019-11-22 12:57:07 +03:00
Evgenii Stratonikov
d5fa31cecd
rpc: trim spaces in tests once
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2019-11-22 12:57:03 +03:00
Evgenii Stratonikov
c8987eda32
rpc: add array param type and tests
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2019-11-22 12:56:58 +03:00
Evgenii Stratonikov
7331127556
rpc: make parameter type an enum
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2019-11-22 12:56:49 +03:00
Vsevolod Brekelov
38088b648a
crypto: add unit tests for public key
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
c03de88b41
core: unit tests blockchain state
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
d28f2dce05
core: unit test validator state
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
419b031e96
core: add weighted function for validators
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
672f314be0
core: nit refactoring and add godoc
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
8ae88593dd
core: blockchain fmt
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
3c4b0e955d
core: create blockchain state that represents state of the bc
...
move some util methods to blockchain state
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
d4e8846ed0
!squash core/crypto
2019-11-21 15:41:49 +03:00
Vsevolod Brekelov
c80ee952a1
core/crypto: add validators and interop for validators
...
add processing of validators while block persist;
add validator structure with decoding/encoding;
add validator get from store;
add EnrollmentTX and StateTX processing;
add pubkey decode bytes, unique and contains functions;
2019-11-21 15:23:35 +03:00
Vsevolod
080b236275
Merge pull request #511 from nspcc-dev/contract-deployment
...
Contract deployment
2019-11-21 11:46:43 +03:00
Roman Khimov
aae3e217a8
rpc/cli: implement contract deployment, fix #474
...
It's used like this:
./bin/neo-go contract deploy -i 1-print.avm -c neo-go.yml -e http://localhost:20331 -w KxDgvEKzgSBPPfuVfw67oPQBSjidEiqTHURKSDL1R7yGaGYAeYnr -g 100
2019-11-20 16:12:40 +03:00
Roman Khimov
310104667d
rpc: refactor out reusable parts of CreateRawContractTransaction()
...
Signing and inputs/outputs management is common for different transactions, so
make separate functions for them.
2019-11-20 16:12:40 +03:00
Roman Khimov
3adc9150d3
cli: rework smart contract configs
...
Use plain yaml structure.
2019-11-20 16:12:40 +03:00
Roman Khimov
7d89ccdb6f
rpc: implement YAML marshaling/unmarshaling for StackParamType
2019-11-20 16:12:40 +03:00
Roman Khimov
34e2122e58
core: only check tx against mempool if it's not in the block
...
Fixes failure to process transaction from the block when it was relayed
initially:
WARN[0788] blockQueue: failed adding block into the blockchain blockHeight=7270 error="transaction 35088916403e5cf2152e16c3bc6e0fba20c955fba38543b9fa5c50a3d3a4ace5 failed to verify: invalid transaction due to conflicts with the memory pool" nextIndex=7271
WARN[0790] blockQueue: failed adding block into the blockchain blockHeight=7270 error="transaction 35088916403e5cf2152e16c3bc6e0fba20c955fba38543b9fa5c50a3d3a4ace5 failed to verify: invalid transaction due to conflicts with the memory pool" nextIndex=7271
WARN[0790] blockQueue: failed adding block into the blockchain blockHeight=7270 error="transaction 35088916403e5cf2152e16c3bc6e0fba20c955fba38543b9fa5c50a3d3a4ace5 failed to verify: invalid transaction due to conflicts with the memory pool" nextIndex=7271
2019-11-20 16:12:40 +03:00
Roman Khimov
27a57e1a2d
transaction: allow system fee specification in NewInvocationTX
...
It's not possible to create any deployment TX without it.
2019-11-20 16:12:40 +03:00
Roman Khimov
d93499cc6f
rpc: implement CalculateInputs for RPC client
...
Using getunspents RPC call.
2019-11-20 16:12:40 +03:00