Roman Khimov
9d6a5dc26f
result: fix confirmations count for blocks
...
It's +1, current block actually had `-1` value calcuated that transformed into
4294967295.
2021-02-18 17:28:19 +03:00
Roman Khimov
eb1986d2fc
state: use big.Int for NEP5 balances and transfer amounts
...
In general, NEP5 contracts are not limited to int64. And we have an example
of pnWETH Flamingo token now (with 18 decimals) that easily overflows int64,
so for correctness we need to store big.Int.
And as TransferLog is shared for different purposes I've decided to not make
it variable-length on Neo 2.
2021-02-18 17:28:19 +03:00
Roman Khimov
07c91ea22d
core: fix getenrollments
...
Make getvalidators return the same set of keys with C# for mainnet.
2021-02-18 17:28:19 +03:00
Roman Khimov
1ef91fa409
rpc: encode port numbers as proper numbers in getpeers
...
The way C# node does it.
2021-02-18 17:28:19 +03:00
Roman Khimov
850d29060a
result: assets are LE in JSON
...
LE/BE split is the worst NEO feature ever.
2021-02-18 17:28:19 +03:00
Roman Khimov
a46c93f6bb
rpc: fix getblocksystemfee call
...
It should return cumulative fee and it should be wrapped into a string.
2021-02-15 17:58:39 +03:00
Roman Khimov
fda8b784c8
rpc/server: allow numbers for getblockheader call
2021-02-15 17:27:23 +03:00
Roman Khimov
9c34dea296
rpc/server: return more specific error in getblockhash
2021-02-15 16:18:03 +03:00
Roman Khimov
c3b6405f0f
transaction: fix asset type JSONization
...
It's stringy in C#.
2021-02-12 23:02:51 +03:00
Roman Khimov
90a06ed7a5
rpc: fix IsFrozen JSONization for assets
...
C# node uses `frozen` as field name here.
2021-02-12 00:04:13 +03:00
Roman Khimov
89fb02a7f8
Merge pull request #1648 from nspcc-dev/backport-fixes-from-master
...
Backport fixes from master to 2.x
2021-01-11 12:44:05 +03:00
Roman Khimov
9e35758653
rpc: fix gettxout result for already spent outputs
...
As per C# documentation [1]:
If the transaction output is already spent, the result value will be null .
[1]: https://docs.neo.org/docs/en-us/reference/rpc/latest-version/api/gettxout.html
2020-12-31 13:54:42 +03:00
Anna Shaleva
4a8259caea
rpc: adjust getrawtransaction
and gettransactionheight
RPC call
...
We should not return transaction metadata from `getrawtransaction` in case
transaction is not in the mempool. Height shouldn't be returned from
`gettransactionheight` in case transaction is in the mempool.
2020-12-31 12:44:07 +03:00
Roman Khimov
124c674b17
*: gofmt -s
2020-12-31 11:52:27 +03:00
Roman Khimov
64d0876fc0
Merge pull request #1503 from nspcc-dev/mpt/refcount
...
Implement reference counting in MPT
2020-11-18 14:20:42 +03:00
Roman Khimov
06f3c34981
mempool: replace timeStamp with blockStamp
...
Time is not really relevant for us here and we don't use this timestamp in any
way. Yet it occupies 24 bytes and we do two clock_gettime calls to get it.
Replace it with blockStamp which is going to be used in the future for
transaction retransmissions.
It allows to improve single-node TPS by another 3%.
2020-11-11 15:48:13 +03:00
Evgenii Stratonikov
df1792c80b
mpt: export func for decoding node with type
...
`NodeObject` can contain auxilliary fields and shouldn't be used from outside.
2020-11-11 13:22:53 +03:00
Anna Shaleva
ef3eb0a842
rpc: allow batch JSON-RPC requests
...
Close #1509
2020-11-06 17:20:27 +03:00
Roman Khimov
68fc8168ec
rpc: add getblocktransfertx RPC call
...
It uses a bit different output format than getalltransfertx, so
TransferTxEvent type was adjusted accordingly.
2020-11-02 19:01:48 +03:00
Roman Khimov
b8705bdb79
rpc/server: use strings for sys and net fees in TransferTx
...
The same they're displayed for transactions.
2020-09-15 20:34:34 +03:00
Roman Khimov
615ae1b3aa
docs: update RPC documentation with *transfers changes
2020-09-15 12:46:40 +03:00
Roman Khimov
2e0e5cff25
rpc/client: add support for getutxotransfers call
2020-09-15 12:46:40 +03:00
Roman Khimov
26d4a05e57
rpc/client: update GetNEP5Transfers call
2020-09-15 12:46:40 +03:00
Roman Khimov
23719f7e72
rpc/server: add new getalltransfertx API
...
It unifies UTXO and NEP5 transfers for a given address and presents it with
transaction-level grouping (and additional metadata).
2020-09-15 12:46:39 +03:00
Roman Khimov
010c22e2b5
rpc/server: limit the maximum number of elements for get*transfers
2020-09-14 17:48:17 +03:00
Roman Khimov
56d57611ca
rpc: add paging to get*transfer calls
2020-09-13 00:12:45 +03:00
Roman Khimov
0ece58e6dd
rpc/server: deduplicate parameter parsing for get*transfers
2020-09-11 22:33:17 +03:00
Roman Khimov
0ef65d1bb9
config: add minimum network fee setting
...
Follow neo-project/neo#1901 .
2020-09-11 15:41:08 +03:00
Roman Khimov
b310ac051b
core/rpc: add continue
flag to iterating functions
...
Most of the time we don't need to get all transfers from the DB and
deserialize them.
2020-09-08 15:38:33 +03:00
Roman Khimov
d3e415d3bd
core/state: reverse the order of ForEachTransfer
...
When using limits we're usually concerned about the most recent
transfers. Returning 3 transfers from the middle of the chain isn't very
helpful.
2020-09-08 12:57:45 +03:00
Roman Khimov
6761efff24
rpc/server: add limit to get*transfers calls
...
Return only N transfers requested.
2020-09-08 12:56:52 +03:00
Roman Khimov
9aee3e5a34
transaction: set output position when decoding
...
We had a kludge for getrawtransaction to set this useless field, but
7e371588a7
broke it. Add it right into the
decoder now to fix all types of queries (getblock/getrawtransaction/gettxout).
Fixes #1392 .
2020-09-07 15:37:57 +03:00
Roman Khimov
04ebef9119
Merge pull request #1386 from nspcc-dev/fix-neo-utxo-tracking
...
core: fix NEO UTXO tracking, drop Fixed8 multiplier
2020-09-04 15:40:24 +03:00
Roman Khimov
39897e811d
core: fix NEO UTXO tracking, drop Fixed8 multiplier
...
When this vout:
{
"n" : 0,
"address" : "ASkbjwosE3aKyGtDQkEgqhNq3Zpv8Xkt14",
"asset" : "0xc56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b",
"value" : "606"
},
Becomes this transfer:
{
"txid" : "0x192ab8e422aed6ac868cb329d6f9af20964134b591908c736d32a2fd8a51d7bf",
"amount" : "60600000000",
"block_index" : 6113653,
"timestamp" : 1599199074
}
Something is wrong here.
2020-09-04 09:09:35 +03:00
Evgenii Stratonikov
8ff2d35723
rpc: support 0x form of Uint256 in requests
2020-08-27 12:56:32 +03:00
Roman Khimov
ffbdcb202f
Merge pull request #1288 from nspcc-dev/fix/utxo
...
rpc: adjust `getutxotransfers` RPC
2020-08-07 19:08:46 +03:00
Evgenii Stratonikov
57a325b3d5
rpc: adjust getutxotransfers
RPC
2020-08-07 18:12:40 +03:00
Roman Khimov
ebcec6e5dc
Merge pull request #1282 from nspcc-dev/rpc/invoke_with_hashes
...
rpc: use hashes for verifying in `invoke*` calls
2020-08-07 17:00:36 +03:00
Anna Shaleva
4b351f3123
cli: use hashes for verifying in invoke*
calls
2020-08-07 14:41:44 +03:00
Anna Shaleva
d20e54b725
rpc: fix method comment
2020-08-07 13:19:00 +03:00
Anna Shaleva
4715efd531
core, rpc: invoke script with hashes for verifying
...
Closes #1275
2020-08-07 13:18:55 +03:00
Roman Khimov
f1ac01578b
Merge pull request #1284 from nspcc-dev/feature/nep5timestamps
...
rpc: provide timestamps in `getnep5transfers`
2020-08-07 12:34:43 +03:00
Roman Khimov
db98f8f30b
Merge pull request #1274 from nspcc-dev/lowercase-json-field-names-for-stateroot
...
rpc: use lowercase JSON field names for StateHeight
2020-08-07 12:24:59 +03:00
Evgenii Stratonikov
02033f8355
rpc: set default values in getutxotransfers
2020-08-07 09:49:09 +03:00
Evgenii Stratonikov
fe5e5ff44a
rpc: provide timestamps in getnep5transfers
...
Set default value for the first timestamp to a week ago.
2020-08-07 09:43:23 +03:00
Evgenii Stratonikov
7bd4488ff9
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-06 14:22:30 +03:00
Evgenii Stratonikov
022fb04077
rpc: implement getutxotransfers
RPC
2020-08-06 14:16:28 +03:00
Roman Khimov
ab5eff620b
rpc: use lowercase JSON field names for StateHeight
...
Follow neo-project/neo#1808 . Note that this is an incompatible change, but
this feature is still considered to be experimental upstream.
2020-08-05 18:15:29 +03:00
Evgenii Stratonikov
e4fcd90b6d
state: make NEP5Transfer log more generic
2020-08-04 16:57:36 +03:00
Evgenii Stratonikov
c4c9f9225c
rpc: return raw values in getnep5*
...
C# nodes format result without using decimals.
2020-08-03 11:00:15 +03:00