Roman Khimov
6014dd720f
compiler: don't push X onto the stack for inlined method calls
...
Regular methods need this, because it'll be packed into parameters, but
inlined ones should deal with it in inlining code itself because method
receiver will be some local (aliased) variable anyway.
2022-07-06 18:18:21 +03:00
Roman Khimov
2ba9017207
Merge pull request #2581 from nspcc-dev/sym-dec-in-getnep17balances
...
rpc: add decimals/name/symbol data to getNEPXXBalance
2022-07-05 12:45:50 +03:00
Roman Khimov
ccc820505d
Merge pull request #2554 from nspcc-dev/improve-ws-err
...
rpc: adjust cases when WS connection close error is returned
2022-07-05 12:45:31 +03:00
Roman Khimov
3fbc1331aa
Merge pull request #2582 from nspcc-dev/fix-server-sync
...
network: adjust the way (*Server).IsInSync() works
2022-07-05 12:28:20 +03:00
Roman Khimov
9f05009d1a
Merge pull request #2580 from nspcc-dev/service-review
...
Service review
2022-07-05 12:23:25 +03:00
Anna Shaleva
0835581fa9
network: adjust the way (*Server).IsInSync() works
...
Always return true if sync was reached once. Fix #2564 .
2022-07-05 12:20:31 +03:00
Anna Shaleva
8f53c7d78a
rpc: adjust cases when WS connection close error is returned
...
Do not return error in case of (*WSClient).Close() method was the
initiator of connection closing.
2022-07-05 11:23:29 +03:00
Roman Khimov
3e2eda6752
*: add some comments to service Start/Shutdown methods
2022-07-04 23:03:50 +03:00
Roman Khimov
593f4e8734
Merge pull request #2559 from nspcc-dev/cli/wallet-config
...
cli: allow to specify wallet via configuration file
2022-07-04 19:24:23 +03:00
Anna Shaleva
5f36a7ca0f
*: do not call wallet.Close() explicitly
...
NewWallet and NewWalletFromFile close underlying io.Closer by itself,
no need to close it manually. Introduced in #2184 .
2022-07-04 19:09:48 +03:00
Roman Khimov
c356c14741
rpc: add decimals/name/symbol data to getNEPXXBalance
...
See neo-project/neo-modules#738 and neo-project/neo-modules#741 .
2022-07-04 18:28:27 +03:00
Roman Khimov
f0b08ba3e9
Merge pull request #2574 from nspcc-dev/fix-message
...
smartcontract: print proper error message on failed testinvoke
2022-07-04 14:14:24 +03:00
Roman Khimov
b7bea7685e
Merge pull request #2579 from nspcc-dev/add-json-enum-doc
...
Add JSON enum doc
2022-07-04 14:14:11 +03:00
Anna Shaleva
b2f188f8f0
cli: refactor code that opens wallet
...
Reduce code duplications, no functional changes.
2022-07-04 13:50:15 +03:00
Anna Shaleva
213bfe6bbf
cli: allow to specify wallet via configuration file
2022-07-04 12:57:47 +03:00
Roman Khimov
926b082d39
Merge pull request #2538 from nspcc-dev/restrict-out-of-bounds
...
core: check methods offsets while contract deploying
2022-07-04 12:54:32 +03:00
Roman Khimov
a535c220d1
docs: add a compatibility note about #2563 problem
2022-07-04 11:15:16 +03:00
Roman Khimov
4afdb9fd89
Merge pull request #2578 from nspcc-dev/getcandidates
...
GetCandidates
2022-07-04 11:13:57 +03:00
Roman Khimov
36d4c17a15
stateroot: wait for the service to stop un Shutdown
2022-07-04 11:12:17 +03:00
Roman Khimov
58b9ac41e2
stateroot: handle double start/shutdown
2022-07-04 11:12:17 +03:00
Roman Khimov
bf462a81fe
notary: wait for the service to finish on Shutdown
2022-07-04 11:12:17 +03:00
Roman Khimov
0d627c947f
notary: control start/stop state
...
Don't start/stop twice, don't do anything in callbacks if not started.
2022-07-04 11:12:17 +03:00
Roman Khimov
73e34514a5
oracle: wait for the service to stop during Shutdown
2022-07-04 11:12:17 +03:00
Roman Khimov
cab633ffed
oracle: make double-Shutdown a no-op
2022-07-04 11:12:17 +03:00
Roman Khimov
6b2fc5e056
rpc/client: add Close method
...
Allow to close unused network connections and use it during RPC broadcaster
shutdown, because otherwise we leak them.
2022-07-04 11:12:17 +03:00
Roman Khimov
649fe58550
rpcbroadcaster: properly stop broadcaster
...
Drain channels, wait for everything to stop.
2022-07-04 11:12:17 +03:00
Evgeniy Stratonikov
5eaa34c75f
cli/smartcontract: do not print dot on a separate line
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-07-04 11:06:06 +03:00
Roman Khimov
c096f32a32
rpc/server: make double Shutdown a no-op
2022-07-01 22:01:04 +03:00
Roman Khimov
527505ea5e
consensus: drain messages and transactions on exit as well
...
There might be some threads blocked on these channels.
2022-07-01 21:55:41 +03:00
Roman Khimov
cd4f46247d
consensus: make double-call to Shutdown a no-op
2022-07-01 21:49:40 +03:00
Roman Khimov
039fcdab5a
rpc: implement getcandidates call, fix #2571
2022-07-01 18:46:44 +03:00
Roman Khimov
ce7a22c390
docs: fix header levels in rpc.md
2022-07-01 18:22:16 +03:00
Roman Khimov
0da0bb21ee
rpc: make getnextvalidators behavior compliant with C# node
...
Turns out, our getnextvalidators implementation already works the way
getcandidates is supposed to work, but original getnextvalidators works a bit
differently. It only returns validators, it doesn't return Active flag (all
of them are active) and it represents votes as a number. So for the maximum
compatibility:
* drop non-validator keys from getnextvalidators server-side
* drop Active flag client-side (sorry, it doesn't exist)
* allow unmarshalling old answers along with the new one
This technically breaks `query candidates` CLI command, but it'll be fixed
when getcandidates are to be introduced.
2022-07-01 14:52:02 +03:00
Roman Khimov
5c4e83db4a
Merge pull request #2577 from nspcc-dev/localhost
...
Localhost
2022-06-30 19:14:18 +03:00
Roman Khimov
c26a962b55
*: use localhost address instead of 127.0.0.1, fix #2575
2022-06-30 16:19:07 +03:00
Roman Khimov
a15a9577f0
docs: fix wrong default address value mentioned
...
We're listening on all addresses by default.
2022-06-30 15:41:44 +03:00
Evgeniy Stratonikov
0dc606f50e
cli/smartcontract: print proper error message on failed testinvoke
...
Do not print info about `--force` flag if we don't send or save a transaction.
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-06-29 15:12:35 +03:00
Roman Khimov
2f55070a57
Merge pull request #2573 from nspcc-dev/dbft-fix-cv-jump
...
go.mod: update dbft
2022-06-29 15:02:58 +03:00
Roman Khimov
8d08c4afee
go.mod: update dbft
...
Import nspcc-dev/dbft#61 .
2022-06-29 14:32:07 +03:00
Roman Khimov
1f62ecd5a3
Merge pull request #2569 from nspcc-dev/dbft-fix-saving-cv
...
go.mod: update dbft, pick up cv save fix
2022-06-29 12:29:41 +03:00
Roman Khimov
52fd897324
go.mod: update dbft, pick up cv save fix
2022-06-29 10:38:31 +03:00
Roman Khimov
cc37de5331
Merge pull request #2566 from nspcc-dev/fix-service-shutdown
...
*: properly unsubscribe from Blockchain events
2022-06-28 19:23:26 +03:00
Anna Shaleva
8ab422da66
*: properly unsubscribe from Blockchain events
2022-06-28 19:09:25 +03:00
Roman Khimov
a748298564
Merge pull request #2567 from nspcc-dev/check-consensus-start
...
consensus: check whether server is started before transaction handling
2022-06-28 18:48:22 +03:00
Anna Shaleva
de203b5c76
consensus: check whether server is started before transaction handling
...
consensus.OnTransaction is a callback, so it can be called at any time.
We need to check whether service (and dBFT) is started before the
subsequent transaction handling like it is done inside the OnPayload
callback.
2022-06-28 18:42:12 +03:00
Roman Khimov
ea69b72cd8
Merge pull request #2560 from nspcc-dev/rpc/extend-logging
...
rpc: extend error log message for failed RPC requests
2022-06-27 09:42:54 +03:00
Roman Khimov
299d55e539
Merge pull request #2558 from nspcc-dev/rpc/fix-signature-decoding
...
rpc: fix compatibility issues of `CreateFunctionInvocationScript`
2022-06-27 08:18:36 +03:00
Anna Shaleva
9488756437
rpc: extend error log message for failed RPC requests
...
Message is always non-empty; Data is allowed to be empty.
2022-06-24 12:44:10 +03:00
Anna Shaleva
a15e52ee3d
rpc: adjust TestInvocationScriptCreationGood testcase
...
Although neo-go can handle both ByteArray and ByteString parameter
types, C# node can't, so let's use the common one for tests. Compat
test:
```
anna@kiwi:~/Documents/GitProjects/nspcc-dev/neo-go$ curl -d '{ "jsonrpc": "2.0", "id": 1, "method": "invokefunction", "params": ["50befd26fdf6e4d957c11e078b24ebce6291456f", "a", [{"type": "ByteString", "value": "AwEtR+diEK7HO+Oas9GG4KQP6Nhr+j1Pq/2le6E7iPlq"}] ]}' seed1.neo.org:10332 | json_pp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1271 0 1070 100 201 2860 537 --:--:-- --:--:-- --:--:-- 3398
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"message" : "Requested value 'ByteString' was not found.",
"data" : " at System.Enum.TryParseByName(RuntimeType enumType, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, UInt64& result)\n at System.Enum.TryParseUInt32Enum(RuntimeType enumType, ReadOnlySpan`1 value, UInt32 maxInclusive, Boolean ignoreCase, Boolean throwOnFailure, TypeCode type, UInt32& result)\n at System.Enum.TryParse[TEnum](ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, TEnum& result)\n at System.Enum.TryParse[TEnum](String value, Boolean ignoreCase, Boolean throwOnFailure, TEnum& result)\n at Neo.SmartContract.ContractParameter.FromJson(JObject json)\n at Neo.Plugins.RpcServer.<>c.<InvokeFunction>b__43_0(JObject p)\n at System.Linq.Enumerable.SelectIListIterator`2.ToArray()\n at Neo.Plugins.RpcServer.InvokeFunction(JArray _params)\n at Neo.Plugins.RpcServer.ProcessRequestAsync(HttpContext context, JObject request)",
"code" : -2147024809
}
}
anna@kiwi:~/Documents/GitProjects/nspcc-dev/neo-go$ curl -d '{ "jsonrpc": "2.0", "id": 1, "method": "invokefunction", "params": ["50befd26fdf6e4d957c11e078b24ebce6291456f", "a", [{"type": "ByteArray", "value": "AwEtR+diEK7HO+Oas9GG4KQP6Nhr+j1Pq/2le6E7iPlq"}] ]}' seed1.neo.org:10332 | json_pp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 507 0 307 100 200 161 105 0:00:01 0:00:01 --:--:-- 266
{
"result" : {
"gasconsumed" : "104526",
"notifications" : [],
"stack" : [],
"script" : "DCEDAS1H52IQrsc745qz0YbgpA/o2Gv6PU+r/aV7oTuI+WoRwB8MAWEMFG9FkWLO6ySLBx7BV9nk9v0m/b5QQWJ9W1I=",
"state" : "FAULT",
"exception" : "Called Contract Does Not Exist: 0x50befd26fdf6e4d957c11e078b24ebce6291456f"
},
"id" : 1,
"jsonrpc" : "2.0"
}
```
2022-06-24 12:37:25 +03:00
Anna Shaleva
aa3a5fc492
rpc: adjust script creation with empty parameters list
...
Always use NEWARRAY0 where possible, see
26d04a642a/src/neo/VM/Helper.cs (L41)
.
Compatibility is tested:
```
anna@kiwi:~/Documents/GitProjects/nspcc-dev/neo-go$ curl -d '{ "jsonrpc": "2.0", "id": 1, "method": "invokefunction", "params": ["50befd26fdf6e4d957c11e078b24ebce6291456f", "a", [] ]}' seed1.neo.org:10332 | json_pp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 370 0 248 100 122 127 62 0:00:01 0:00:01 --:--:-- 190
{
"result" : {
"notifications" : [],
"stack" : [],
"script" : "wh8MAWEMFG9FkWLO6ySLBx7BV9nk9v0m/b5QQWJ9W1I=",
"gasconsumed" : "98403",
"state" : "FAULT",
"exception" : "Called Contract Does Not Exist: 0x50befd26fdf6e4d957c11e078b24ebce6291456f"
},
"jsonrpc" : "2.0",
"id" : 1
}
```
2022-06-24 12:37:22 +03:00