Roman Khimov
5148b98f43
Merge pull request #773 from nspcc-dev/fix/bigint
...
vm: use truncated division for Integers
2020-03-23 18:01:21 +03:00
Evgenii Stratonikov
6ed2bd63b9
core: marshal AppExecResult.Stack as an array
...
Closes #782 .
2020-03-23 16:27:47 +03:00
Evgenii Stratonikov
6ac69d075e
smartcontract: implement io.Serializable for Parameter
2020-03-23 16:27:47 +03:00
Evgenii Stratonikov
0f17b9be1d
smartcontract: use int64 for Integer parameter value
2020-03-23 16:24:57 +03:00
Roman Khimov
b37c5939f8
Merge pull request #780 from nspcc-dev/fix/776
...
vm: allow to push integer-like items to stack
2020-03-18 13:27:31 +03:00
Evgenii Stratonikov
954e8cdcf1
vm: allow to push integer-like items to stack
...
Perform automatic conversion of non-standard integer types to
int64 if possible.
Closes #776 .
2020-03-18 12:58:31 +03:00
Evgenii Stratonikov
9666e99a17
smartcontract: marshal Integer values to JSON-strings
...
It is done so in C# implementation, we better be
as compatible as possible.
Closes #770 .
2020-03-18 11:58:17 +03:00
Evgenii Stratonikov
1e7b47ec05
smartcontract: always use int64 for integers
...
It is good when internal representation is unique.
2020-03-18 11:58:17 +03:00
Roman Khimov
8400f0add2
mempool: gofmt -s
2020-03-17 16:47:51 +03:00
Evgenii Stratonikov
4b44190485
vm: use truncated division for Integers
...
When divisor is negative, the result is truncated towards
zero.
2020-03-17 15:45:56 +03:00
Evgenii Stratonikov
dfbb84ef38
rpc: support https
...
Allow to start TLS RPC server on a separate port.
Closes #702 .
2020-03-17 12:44:23 +03:00
Roman Khimov
ec76a0bf15
mempool: disallow more than one issue tx at once
...
Technically they could conflict for available asset amount, but as they're
very rare (and even can be considered obsolete) we can simplify this check.
2020-03-17 11:40:01 +03:00
Roman Khimov
d5d0479671
core: verify results of issue transaction
...
It shouldn't try to issue more tokens than there is available.
2020-03-17 11:40:01 +03:00
Roman Khimov
10601cb375
core: add issuer hashes into the verification list for Issue TX
...
As it should be done.
2020-03-17 11:40:00 +03:00
Roman Khimov
dca637d2d0
core: add owner hash to verified list for Register TX
...
As it should be done.
2020-03-17 11:37:02 +03:00
Roman Khimov
77a799f7d0
core: add missing state tx verifications
2020-03-16 20:14:59 +03:00
Roman Khimov
6ede65610d
core: add appropriate hashes to check for State TX
...
These checks are important for proper transaction verification.
2020-03-16 19:52:28 +03:00
Roman Khimov
a5e862c351
rpc/client: add TransferNEP5 method to easily transfer tokens
...
We have TransferAsset for regular tokens, so it'd be nice to have TransferNEP5
for NEP5 ones. Relates to #599 .
2020-03-16 17:52:32 +03:00
Evgenii Stratonikov
9a41ffb9fb
wallet: support token removal
...
Also add tests for Add/RemoveToken
2020-03-16 15:12:50 +03:00
Evgenii Stratonikov
03d0a6519a
wallet: support account removal
2020-03-16 15:12:50 +03:00
Evgenii Stratonikov
b193e78def
core: remove duplication from IsDoubleClaim/IsDoubleSpend
2020-03-16 14:11:19 +03:00
Evgenii Stratonikov
cdf025bf89
transaction: implement AddVerificationHash() method
2020-03-16 14:11:19 +03:00
Roman Khimov
e9429374aa
Merge pull request #756 from nspcc-dev/feature/unclaimed
...
core/state: do not unmarshal Unclaimed balances in account
2020-03-16 13:21:23 +03:00
Roman Khimov
cff6e226dd
Merge pull request #760 from nspcc-dev/fix-contract-storage-migration
...
core: fix contract's state migration and don't swallow errors
2020-03-16 12:25:15 +03:00
Evgenii Stratonikov
e503d1001d
core/state: do not unmarshal Unclaimed balances in account
2020-03-16 12:19:32 +03:00
Roman Khimov
e6e8761d35
core: fix contract's state migration and don't swallow errors
...
Fixes difference in state changes at mainnet's block 2442790 because contract
migration in b4eb2dc35226e6520ee4e09a56197dff91547b50a7f57edc82930fc18c75dffc
doesn't actually transfer the storage state, it only deletes the old one.
And add an error check just in case.
2020-03-16 11:52:09 +03:00
Evgenii Stratonikov
66727ab8fa
rpc: marshal Asset hash in LE in getnep5balances RPC
2020-03-16 10:14:55 +03:00
Roman Khimov
ba1c3bfccb
Merge pull request #758 from nspcc-dev/rpc-fix-hash160
...
rpc: fix invocations of contracts using hash160
2020-03-13 16:50:31 +03:00
Roman Khimov
c8f4eee5f4
rpc: fix invocations of contracts using hash160
...
ERROR Error encountered with rpc request {"error": "expected string size of 40 got 42",...
2020-03-13 16:47:08 +03:00
Anna Shaleva
784bac0b38
rpc: bug with empty stack marshalling in getapplicationlog
...
Problem: cannot marshall empty raw message from appExecResult.Stack
Solution: add handler for case when appExecResult.Stack is an empty string
2020-03-13 12:50:51 +03:00
Roman Khimov
d9a83373ed
Merge pull request #748 from nspcc-dev/feature/splitnep5
...
core: store NEP5 balances separately from account
2020-03-12 18:31:25 +03:00
Evgenii Stratonikov
ac475940a0
core: cache NEP5Transfers in cached DAO
2020-03-12 17:16:11 +03:00
Evgenii Stratonikov
6fa2a998f4
core: cache NEP5Balances in cached DAO
2020-03-12 17:06:20 +03:00
Roman Khimov
734778c1f9
Merge pull request #747 from nspcc-dev/fix-contract-deploy-gas-parameter
...
Use wallet in smartcontract deploy/invoke commands and calculate GAS properly
2020-03-12 17:00:04 +03:00
Roman Khimov
25da5a30d8
cli: change deploy and invoke commands to use wallet
...
Passing WIF directly in the command line is not something we should be doing.
Also split netfee and sysfee in the RPC as they're different (and add a script
attribute for free transactions).
2020-03-12 16:19:12 +03:00
Anna Shaleva
307b3b162b
rpc: implement missing RPC client methods
...
Implemented following RPC client methods:
- getapplicationlog
- getassetstate
- getbestblockhash
- getblockcount
- getblockhash
- getblockheader
- getblocksysfee
- getconnectioncount
- getcontractstate
- getpeers
- getrawmempool
- getstorage
- gettransactionheight
- gettxout
- getunclaimed
- getvalidators
- getversion
- submitblock
- validateaddress
2020-03-12 15:56:59 +03:00
Evgenii Stratonikov
6e0a57075f
*: gofmt
2020-03-12 14:51:13 +03:00
Evgenii Stratonikov
32401a567e
core: store NEP5Transfers in batches
...
This is an append-only log which is read only during some RPCs.
It is rather slow to get it from base every time we need to append to
it. This commit stores all NEP5Transfers in batches, so that
only a last batch needs to be unmarshaled during block processing.
2020-03-12 14:51:12 +03:00
Evgenii Stratonikov
3c6d9653b0
core/state: add Size() method to NEP5TransferLog
2020-03-12 12:58:30 +03:00
Evgenii Stratonikov
df2598c8dc
core: store NEP5 balances separately
...
There is no need to take and unmarshal an account structure only
to get it's NEP5 balances.
2020-03-12 12:58:28 +03:00
Evgenii Stratonikov
d25dddc780
rpc: refactor getDecimals
...
Use existing functions to invoke smartcontract's
method instead of constructing ad-hoc script.
2020-03-12 12:19:31 +03:00
Evgenii Stratonikov
05544a1510
rpc: return empty arrays instead of null in getnep5* RPCs
2020-03-12 12:19:30 +03:00
Roman Khimov
1b5dd53e07
Merge pull request #746 from nspcc-dev/fix/equal
...
vm: implement EQUAL opcode properly
Fixes #745 , #749 .
2020-03-12 11:46:51 +03:00
Roman Khimov
bbd802681e
cli: make gas parameter to deployment add gas to the base price
...
That's how it was intended to behave originally. One thing questionable here
is contract price (policy thing, basically) being moved to smartcontract
package, but it's probably fine for NEO 2.0 (as it won't change) and we'll
make something better for NEO 3.0.
2020-03-11 20:34:36 +03:00
Roman Khimov
695c4dd6ae
Merge pull request #744 from nspcc-dev/feature/getunclaimed
...
rpc: implement getunclaimed
2020-03-11 19:18:36 +03:00
Anna Shaleva
c23a522d25
rpc: implement getunclaimed
...
closes #712
2020-03-11 18:33:15 +03:00
Roman Khimov
5f1868af28
Merge pull request #743 from nspcc-dev/optimize-some-db-accesses
...
Optimize some db accesses
2020-03-11 17:33:36 +03:00
Roman Khimov
abd7855890
Merge pull request #742 from nspcc-dev/add-dynamic-appcall
...
vm: add support for dynamic invocations in APPCALL
2020-03-11 17:27:05 +03:00
Evgenii Stratonikov
dfc59129c7
vm: implement EQUAL opcode properly
...
When comparing elements of different types, conversions
should be performed. This commit implement custom equality
predicate for each stack item type.
2020-03-11 17:19:10 +03:00
Evgenii Stratonikov
5da82e8cf0
vm: add TryBytes() to StackItem interface
...
Conversion should be done in a StackItem, not in an Element.
2020-03-11 16:33:46 +03:00