Anna Shaleva
044ae477ca
smartconract: generate RPC binding wrappers for events
...
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-31 15:52:39 +03:00
Anna Shaleva
ae52b2c2fa
rpcbinding: fix binding indentation
...
New rule for writing blocks of code to our template: new line before
the block starts and new line after the block ends. This rule is the
same as the one we use during manual typing.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-30 17:37:06 +03:00
Anna Shaleva
0f0f7b364f
rpcbinding: use typed return err value in etTypeConverter
...
Otherwise the resulting code can't be compiled.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-25 16:41:23 +03:00
Anna Shaleva
36af361c2b
smartcontract: add FromStackItem wrapper for RPC bindings
...
Make it exported and reusable from the user's code.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-24 11:27:49 +03:00
Anna Shaleva
7a06cea885
cli: allow to rewrite expected test output
...
Don't perform it manually every time.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-24 11:27:48 +03:00
Anna Shaleva
a2449ae8ae
cli: autocomplete output filenames for contract compile
cmd
...
It's enough to specify the input file only to get the standard output:
```
$ neo-go contract compile -i ./1-print/1-print.go
$ neo-go contract compile -i ./1-print/
```
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-17 13:09:30 +03:00
Anna Shaleva
3dbb733324
cli: require contract config file for bindings generation
...
It's an error if config file isn't provided and bindings config needs
to be generated.
Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
2023-05-17 13:00:39 +03:00
Anna Shaleva
6b21ad9922
*: replace interface{}
with any
keyword
...
Everywhere including examples, external interop APIs, bindings generators
code and in other valuable places. A couple of `interface{}` usages are
intentionally left in the CHANGELOG.md, documentation and tests.
2023-04-04 13:22:42 +03:00
Roman Khimov
b1e7f40226
rpcbinding: fix wrappers for Any type, fix #2898
2023-02-18 00:06:45 +03:00
Anna Shaleva
7bab81f196
cli: adjust flags description for smartcontract generate-*
2022-12-28 12:18:09 +03:00
AnnaShaleva
2334166423
cli: mark required flags of generate-*
command
2022-12-28 12:15:56 +03:00
Roman Khimov
90a85259a8
Merge pull request #2827 from nspcc-dev/multiaddr
...
network: support multiple bind addresses
2022-12-07 17:15:56 +07:00
Anna Shaleva
9087854b1e
services: allow multiple listen addresses for simple services
...
And deprecate the old way of Address/Port configuration for these services.
2022-12-07 11:23:01 +03:00
Roman Khimov
e5aa5ca294
rpcbinding: improve error reporting in generated code
2022-12-06 13:15:10 +03:00
Roman Khimov
ec5ebc8c18
rpcbinding: improve indentation for internal unwrappers
2022-12-06 13:15:10 +03:00
Roman Khimov
c058ab5604
rpcbinding: handle more complex non-structured types
2022-12-06 13:15:10 +03:00
Roman Khimov
ce67e6795e
rpcbinding: properly support maps
...
I'm not sure that map with a `*big.Int` key is a good one, but it can work
this way.
2022-12-06 13:15:10 +03:00
Roman Khimov
8e0be6e7a5
rpcbinding: improve indentation for internal array code
2022-12-06 13:15:10 +03:00
Roman Khimov
0214628127
rpcbinding: generate bindings using new extended type data
2022-12-06 13:15:10 +03:00
Roman Khimov
82c6ce218b
rpcbinding: use binding condig to generate code for simple arrays
...
Part of #2767 .
2022-11-14 13:01:13 +03:00
Roman Khimov
ea44367c97
cli/smartcontract: generate bindings also for examples
...
We do compilation test for them, just to check that the compiler doesn't choke
for any reason, but we can do the same for wrapper generators.
2022-11-09 18:13:45 +03:00
Roman Khimov
a7f86dcb7f
rpcbinding: generate Expanded methods for iterators
...
Refs. #2768 .
2022-11-09 18:13:45 +03:00
Roman Khimov
d569fe01e6
rpcbinding: initial support for iterators, see #2768
...
Already better than stackitem.Item.
2022-11-09 18:13:45 +03:00
Roman Khimov
69d8905ad9
rpcbinding: exclude onNEPXXPayment methods from wrappers
...
They make no sense there.
2022-11-08 17:01:36 +03:00
Roman Khimov
130608ac67
rpcbinding: support writer-only wrappers
...
"verify" contract doesn't have any safe methods.
2022-11-08 17:01:36 +03:00
Roman Khimov
df29008a50
rpcbinding: add GAS testcase, fix methodless wrappers
...
* strip NEP-XX methods before going into generator to avoid unused imports
* nepXX.Invoker types already include Call
* always import util, it's used for Hash
2022-11-08 17:01:36 +03:00
Roman Khimov
aeb61fb61d
rpcbinding: generate ASSERT for bool-returning methods
...
It's a common pattern.
2022-11-08 17:01:36 +03:00
Roman Khimov
2a4a5ab479
rpcbinding: support simple wrappers for writer methods
...
Fixes #2769 .
2022-11-08 17:01:36 +03:00
Roman Khimov
02ce59cfd5
binding: avoid name conflicts with Go keywords
...
And clashing one name on another after rename.
2022-10-27 22:57:49 +03:00
Roman Khimov
617c31093f
smartcontract: initial rpcbinding implementation, fix #2705
...
It can do some unwrapping and reuse nepXX packages. It only uses manifest data
at the moment, see #2767 , #2768 , #2769 .
2022-10-27 22:57:49 +03:00
Anna Shaleva
d09a0c18a7
cli: unify signers parsing
...
Share signers parsing code between 'contract invokefunction' and
'vm load*' commands, quite a useful thing when it comes to witness
checks.
2022-10-13 16:07:34 +03:00
Anna Shaleva
7eb87afab8
cli: unify parameters parsing
...
Share parameters parsing code between 'contract invokefunction' and
'vm run' commands. It allows VM CLI to parse more complicated parameter
types including arrays and file-backed bytestrings.
2022-10-13 08:20:27 +03:00
Roman Khimov
0efe3dd42c
cli: deduplicate smartcontract/wallet tx confirm/sign/save/send
...
It's the same code.
2022-10-06 23:03:32 +03:00
Roman Khimov
1ac60ada19
cli: move tests to subpackages
...
Refs. #2379 , but not completely solves it, one package seriously outweights
others:
? github.com/nspcc-dev/neo-go/cli [no test files]
ok github.com/nspcc-dev/neo-go/cli/app 0.036s coverage: 100.0% of statements
ok github.com/nspcc-dev/neo-go/cli/cmdargs 0.011s coverage: 60.8% of statements
ok github.com/nspcc-dev/neo-go/cli/flags 0.009s coverage: 97.7% of statements
? github.com/nspcc-dev/neo-go/cli/input [no test files]
ok github.com/nspcc-dev/neo-go/cli/options 0.033s coverage: 50.0% of statements
? github.com/nspcc-dev/neo-go/cli/paramcontext [no test files]
ok github.com/nspcc-dev/neo-go/cli/query 2.155s coverage: 45.3% of statements
ok github.com/nspcc-dev/neo-go/cli/server 1.373s coverage: 67.8% of statements
ok github.com/nspcc-dev/neo-go/cli/smartcontract 8.819s coverage: 94.3% of statements
ok github.com/nspcc-dev/neo-go/cli/util 0.006s coverage: 10.9% of statements
? github.com/nspcc-dev/neo-go/cli/vm [no test files]
ok github.com/nspcc-dev/neo-go/cli/wallet 72.103s coverage: 88.2% of statements
Still a nice thing to have.
2022-10-06 09:21:26 +03:00
Roman Khimov
d2d190913b
cli: add historic abilities for all invoking commands
...
Notice that we can't do this for balance commands (unless we change the
interface in some manner) because they use getnepXXbalances.
Fixes #2620 .
2022-09-08 19:20:18 +03:00
Roman Khimov
4403a95ae6
cli: don't return sender from invokeWithArgs
...
It's not really needed, deployer knows the sender exactly already.
2022-09-08 15:57:27 +03:00
Roman Khimov
58dc8d0c9b
*: always close the wallet after use
...
Fix #2631 .
2022-09-02 14:44:32 +03:00
Roman Khimov
fd8da6fdb9
*: do not get private key from Account to check if it CanSign()
...
We have this API now to performs checks.
2022-09-02 14:43:34 +03:00
Roman Khimov
8d33206bb8
*: don't get private key from account if just public one is needed
...
Add PublicKey() API to the Account and use it as appropriate, avoid creating
additional references to the private key.
2022-09-02 14:43:28 +03:00
Roman Khimov
4b136e8ab1
cli/sc: tune error messages for forced save/send
...
Here we're either saving or sending a transaction (depending on `out`), but
not both. Refs. #2664 .
2022-08-31 09:51:57 +03:00
Anna Shaleva
40315fe092
cli: check manifest for validness if it's got from user input
...
And adjust the test case along the way, unnamed arguments are not
allowed for valid manifest.
2022-08-22 14:59:34 +03:00
Roman Khimov
7e212de41a
cli: drop the use of deprecated APIs from sc/nep11/nep17
2022-08-19 21:52:43 +03:00
Roman Khimov
5c8f3a99dc
rpcclient: add management wrapper for ContractManagement
2022-08-17 11:42:20 +03:00
Roman Khimov
593fa4cac8
Merge pull request #2632 from nspcc-dev/rpcclient-actor
...
RPC client Actor interface
2022-08-09 17:21:24 +03:00
Roman Khimov
d9feec2be5
cli: use MVUBI for saved transactions
...
And DO NOT CHANGE TX in paramcontext InitAndSave, because it's really
unobvious and must not be done this way.
2022-08-07 22:33:57 +03:00
Roman Khimov
ba2e7063dd
cli: compensate VUB for prompt waiting time
...
We also have now ways to change it with actor package, so technically this
fixes #2618 .
2022-08-07 22:33:57 +03:00
Roman Khimov
7132b38425
cli: use actor.Actor for smart contract invocations
...
That's a proof of the concept mostly since it doesn't change much in this
particular case.
2022-08-07 22:33:56 +03:00
Roman Khimov
8385efe4b3
cli: simplify and fix invokeWithArgs logic
...
Saving into a file can't be successful without signAndPush flag (wallet
present). This situation can't happen in CLI invocations since
testinvokefunction doesn't have `--out` flag, but still it's a logic
error. Everything else can be simplified a bit taking that into account.
2022-08-07 22:33:56 +03:00
Roman Khimov
28e2010cbd
cli: add UsageText to commands that were missing it
...
Makes --help a bit more useful.
2022-08-05 18:28:02 +03:00
Roman Khimov
1518019be8
cli: add excessive arguments checks
...
Some commands don't accept arguments, but users try giving them and don't
notice a mistake. It's a bit more user-friendly to tell the user that there is
something wrong with the way he tries to use the command.
2022-08-05 15:50:12 +03:00
Roman Khimov
1e0750e3cd
rpc: merge response and request under pkg/neorpc
...
Move result there also.
2022-07-25 11:57:53 +03:00
Roman Khimov
8c668765d2
rpc/client: move to pkg/rpcclient
...
Better package name, closer to user.
2022-07-21 22:39:53 +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
213bfe6bbf
cli: allow to specify wallet via configuration file
2022-07-04 12:57:47 +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
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
Evgeniy Stratonikov
ec21c14ca9
gomod: upgrade yaml package from v2 to v3
...
Close #2085 .
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-05-30 15:26:17 +03:00
Erik van den Brink
c2f9986714
cli: update generate-wrapper usage text
2022-03-22 15:33:54 +01:00
Anna Shaleva
2096ad6e81
*: remove io/ioutil uses
...
Close #1764 .
2022-03-17 19:39:18 +03:00
Evgeniy Stratonikov
a2cef15932
compiler: emit bindings configuration
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-02-28 15:36:14 +03:00
Evgeniy Stratonikov
42c1e8b0e3
cli/smartcontract: allow to use 0x-prefixed hashes in generate
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-02-25 10:28:14 +03:00
Roman Khimov
870fd024c9
Merge pull request #2367 from nspcc-dev/rpc/thread-safe
...
rpc: take care of RPC clients
2022-02-24 20:11:15 +03:00
Evgeniy Stratonikov
da03d895de
cli/smartcontract: generate bindings to an existing contract
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-02-23 15:40:06 +03:00
AnnaShaleva
0092330fe1
rpc: carefully review places where Client.cache.initDone is used
...
1. Keep initDone check only for the places where cache is directly accessed.
We don't need to check it in other places, otherwise we have a mess of
duplicating checks.
2. Fix bug in code related to block deserialisation. There's no magic, so
checking that initialisation is done is not enough for proper block
deserialisation. We need to manually fill StateRootEnabled field.
3. Since transaction doesn't need network magic to compute its hash, we don't
need to perform Client initialisation before transaction-related requests.
4. Check that cache is initialised before accessing network magic.
5. Refactor the way Policy contract hash is fetched for Client requests.
We don't really need Client initialisation for that, it's OK to fetch Policy
hash on-the-fly.
2022-02-22 12:52:14 +03:00
Anna Shaleva
590f86aa2c
cli: add tests for smartcontract-related commands
...
Fixes:
* Improve error handling.
2022-02-02 11:28:29 +03:00
Anna Shaleva
b88f2b389f
cli: check execution state while saving invoked tx
2022-02-02 11:28:29 +03:00
Evgeniy Stratonikov
945b56e350
cli/smartcontract: set correct version for pkg/interop
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-20 13:52:58 +03:00
Evgeniy Stratonikov
25583f9aeb
compiler: make pkg/interop a separate module
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-20 13:21:26 +03:00
Evgeniy Stratonikov
9871dc8f5a
compiler: update x/tools package
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2022-01-20 13:21:26 +03:00
AnnaShaleva
aefb6f9fee
*: fix tests failing due to path.Join usage
...
Solution:
Use `file/filepath` package to construct expected path. This package is OS-aware, see https://github.com/golang/go/issues/30616 .
2021-11-29 11:11:09 +03:00
Roman Khimov
49149afecf
Merge pull request #2244 from nspcc-dev/dont-panic-on-stdin-ioctl-issues
...
Dont panic on stdin ioctl issues
2021-11-04 20:36:54 +03:00
Roman Khimov
7679a17bc6
cli: provide better error message in case of password read failure
2021-11-03 19:36:11 +03:00
Evgeniy Stratonikov
7758378d28
compiler: allow to overload methods in manifest
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-10-29 20:15:21 +03:00
Evgeniy Stratonikov
0db5dd5fd7
cli/smartcontract: allow to deploy contracts with scope
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-10-13 15:55:42 +03:00
Roman Khimov
42a9d3d7b8
nef: add Source field
...
Follow neo-project/neo#2605 .
2021-09-24 00:19:37 +03:00
Evgeniy Stratonikov
2a78ec8003
cli/wallet: show tx fee before relaying
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-09-21 11:31:56 +03:00
Roman Khimov
6d074a96e9
*: make tests use TempDir(), fix #1319
...
Simplify things, drop TempFile at the same time (refs. #1764 )
2021-08-26 17:29:40 +03:00
Evgeniy Stratonikov
adcae12331
cli/smartcontract: reuse read functions in contractDeploy
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-08-06 12:05:36 +03:00
Evgeniy Stratonikov
868198a36e
cli/smartcontract: add manifest add-group
command
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-08-06 12:05:32 +03:00
Evgeniy Stratonikov
6fe2ace43b
cli/smartcontract: refactor contract deploy a bit
...
Provide cosigners explicitly during deploy and don't read wallet twice.
This is needed because manifest validation requires valid sender address.
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-08-06 12:05:32 +03:00
Roman Khimov
2a57e48897
cli/sc: add sysgas option to add some gas
...
Sometimes on-chain invocations need a bit more GAS than expected after test
invocations, so let the user compensate for that. 2.x has similar option since
483fefbb62
.
2021-07-02 11:57:47 +03:00
Evgeniy Stratonikov
4249674ddc
compiler: check for contract permissions
...
On many occassions we can determine at compile-time if contract config lacks
some properties it needs. This includes all native contract invocations
through stdlib, as both hashes and methods are known at compile-time
there.
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-06-28 11:49:29 +03:00
Anna Shaleva
50296975e2
crypto: allow to provide non-default scrypt parameters
2021-06-11 15:22:28 +03:00
Evgeniy Stratonikov
4467e2cbfd
cli,compiler: allow to specify manifest permissions
2021-06-04 11:16:22 +03:00
Evgeniy Stratonikov
e3e0e2a8a8
cli: allow to specify CustomContracts/Groups signer
...
The syntax is `CalledByEntry,CustomContracts:hash1:hash2`.
2021-05-28 15:46:33 +03:00
Roman Khimov
9d2712573f
*: enable godot linter and fix all its warnings
...
It's important for NeoGo to have clean documentation. No functional changes.
2021-05-12 23:17:03 +03:00
Roman Khimov
e9cefc4bfc
*: fix all errcheck warnings in testing code
2021-05-12 21:45:12 +03:00
Anna Shaleva
e48eb10522
cli: unify 'contract deploy' and 'contract invoke*' commands
...
These commands share a lot of code.
2021-04-23 12:40:13 +03:00
Anna Shaleva
16fa191ccb
cli: move combining signers and accounts to a separate package
...
This code will be reused in other packages.
2021-04-23 10:27:43 +03:00
Anna Shaleva
94316fa36d
cli: move GetDataFromContext and ParseParams to a helpers
package
2021-04-23 10:26:09 +03:00
Anna Shaleva
d12ae0998f
cli: return numWordsRead from GetDataFromContext
...
It's needed when we have extra args after the 'data' argument. Then
these args are started right from numWordsRead offset.
2021-04-23 10:23:06 +03:00
Anna Shaleva
2ab420ed18
cli: move cosigners parsing to a separate function
...
We have a lot of common code which is shared between `smartcontract` and
`wallet` cli packages. It's convinient to keep it in a separate helper
package in order to avoid functional cli packages dependencies.
2021-04-23 10:11:01 +03:00
Roman Khimov
881ed3065e
Merge pull request #1909 from nspcc-dev/cli/default-cosigner-scope
...
cli, rpc: use CalledByEntry as a default cosigner's scope
2021-04-19 14:43:31 +03:00
Anna Shaleva
2a144d0420
cli: use CalledByEntry as default cosigner's scope
2021-04-19 11:52:28 +03:00
Anna Shaleva
4e66293612
cli: allow to provide 'data' for 'contract deploy' command
2021-04-19 10:52:42 +03:00
Anna Shaleva
1a8ea8e2d6
cli: specify usage text for 'contract deploy' command
2021-04-19 10:50:15 +03:00
Roman Khimov
8f14c61c34
Merge pull request #1906 from nspcc-dev/cli/transfer_param
...
cli: allow to pass 'data' for nep17 transfer command
2021-04-19 10:43:42 +03:00
Anna Shaleva
db868f033e
cli: allow to provide data
for nep17 transfer commands
2021-04-19 10:20:29 +03:00
Anna Shaleva
df24c51262
cli: use AddressFlag for calc-hash
2021-04-16 12:41:28 +03:00
Roman Khimov
26eff7110c
cli/smartcontract: allow deploying contracts from multisig accounts
...
By providing `--out` flag.
2021-04-07 11:50:24 +03:00