Skip to content

Commit

Permalink
feat: Config command (stellar#275)
Browse files Browse the repository at this point in the history
* feat: initial steps towards config

* feat: create Secret type and use rpassword to read secret inputs

* feat: validate secret key

* fix: clippy

* feat: initial config resolution

* feat: add toml support

* feat: add `rm` and `ls`

* feat: add `args-file` option to `invoke`

Currently only tests raw string

* chore: fmt

* fix: deploy test contract once and invoke twice

* fix: test and arg type

* feat: add slip10

* feat: add `identity generate` command

* chore: rename location to args

* start the addition of the network command (#1)

* Update cmd/soroban-cli/src/config/network/mod.rs

Co-authored-by: Chad Ostrowski <[email protected]>

* chore: make Wasm type for tests

* feat: config Args and incorporate into other commands

* fix: pass tests

* chore: replace wrap args with config::args

* feat: add wasm::Args

* chore: use secret::Args and add `as`

Note that since as is a keyword you need to add `r#` as a prefix to tell the parser.

* chore: remove unneeded file

* chore: update strkey to newest version

* fix: secret key args

* feat: add test secret key test file

* chore: config --> config_locator

* chore: rename location --> config_locator

Add needed descriptions

* fix: network_path needs network_dir

* fix: make --identity a flag, not subcommand

* feat: simplify config consumption

First of all, no longer allow setting `--config-dir`. Only allow using
the workspace config (the default) or the global config by passing
`--global` when adding new configs.

Then, when _consuming_ configs in commands like `invoke`, `read`, etc
(that is, in all parts of the CLI that are not nested under `config`),
don't allow specifying `--global`. In addition to being hard to
interpret (what does it mean to invoke _globally_?), this specificity
introduced potential for user error: if I add a global identity called
"ahalabs", and I call `invoke` with `--identity ahalabs` but forget to
also include `--global`, I would have gotten errors.

Instead, the new code always uses the same behavior when _reading_
configs:

1. Check local config files for an identity/network with the given name
2. If not found, check global config files for that name

This introduces the possibility that a user may add both a local and a
global config with the same name, and could become confused that the
global is not being used. To help prevent such confusion, this also adds
some `println` statements to tell the CLI user which config is being
used, and to warn when adding one with a duplicate name.

* fix: clippy and merge errors

* feat: incorporate config args to simplify commands

* feat!: remove defaults for now

This isn't implemented and currently doesn't make sense for networks anyway. Also could be a footgun to users accidentally using a default identity.

* feat: use XDG's `.config/soroban` for global config

* chore: refactor/cleanup

* feat: remove unneeded collision checks since lookup starts local

* chore: add tests

Still need to finish global tests

* chore: clippy

* feat: XDG_CONFIG_HOME env allows a global custom location for config

* fix: make secret-key take a CLI arg for now

* chore: remove seed_phrase arguments and logic for now

* fix: sort ls output

* chore: address some initial feedback

* chore: improve clarity

* chore(tests): new Sandbox instance; multiple cmds to share temp dir

* feat: add support for seed phrases

* feat: add generate command

* chore: update to released version of rs-sep5

---------

Co-authored-by: Jonathon Hammond <[email protected]>
Co-authored-by: Chad Ostrowski <[email protected]>
Co-authored-by: Tsachi Herman <[email protected]>
  • Loading branch information
4 people authored Feb 7, 2023
1 parent 99114c4 commit 518cafc
Show file tree
Hide file tree
Showing 35 changed files with 1,815 additions and 550 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
target/
.soroban/
!test.toml
Loading

0 comments on commit 518cafc

Please sign in to comment.