Part of [Add a CLI query to list all authorities with owner filter](#41)
Usage:
```bash
$ laconicd query registry list-authorities -h
List authorities (optionally by owner)
Usage:
laconicd query registry list-authorities [flags]
Flags:
--grpc-addr string the gRPC endpoint to use for this chain
--grpc-insecure allow gRPC over insecure channels, if not the server must use TLS
--height int Use a specific height to query state at (this can error if the node is pruning state)
-h, --help help for list-authorities
--no-indent Do not indent JSON output
--node string <host>:<port> to CometBFT RPC interface for this chain (default "tcp://localhost:26657")
-o, --output string Output format (text|json) (default "text")
--owner string Owner to get the authorities for
```
Example:
```bash
# Without owner filter
$ laconicd query registry list-authorities
authorities:
- entry:
expiry_time: "2024-07-26T06:54:28.491158167Z"
height: "247"
owner_address: laconic1e23vfttpvk045pqeydr4mujmlemx8hf9zjm7h2
owner_public_key: A6RlTGLIpyA8nnEQN4V3sz3uaLMY0fHtB7aS7u1zTOdD
status: active
name: cerc
- entry:
expiry_time: "2024-07-26T06:47:58.971429925Z"
height: "118"
owner_address: laconic10ztdu07xn7rracvzvehelgwvsytqlrvj6pvput
owner_public_key: AvBxGIXBFmWCF+OHFwydqEtp2bfP+aimObO3teunbve7
status: active
name: laconic
# With owner filter
$ laconicd query registry list-authorities --owner laconic1e23vfttpvk045pqeydr4mujmlemx8hf9zjm7h2
authorities:
- entry:
expiry_time: "2024-07-26T06:54:28.491158167Z"
height: "247"
owner_address: laconic1e23vfttpvk045pqeydr4mujmlemx8hf9zjm7h2
owner_public_key: A6RlTGLIpyA8nnEQN4V3sz3uaLMY0fHtB7aS7u1zTOdD
status: active
name: cerc
```
Reviewed-on: #42
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Part of cerc-io/laconic2d#38
This is a hot fix for the issue, cause yet to be investigated.
Reviewed-on: cerc-io/laconic2d#39
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
* Rename ethereum_address to nitro_address
* Use camel case for variables in gql schema
* Fix indentation in proto files
* Fix proto lint errors
---------
Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
* Add proto files for onboarding module
* Add generated proto bindings
* Define onboarding object
* Define the participants state in keeper
* Update genesis file to initialize and export module state to/from genesis
* Add msg to onboard participant
* Register command to enroll participant
* Add functionality to decode ethereum address from signature
* Add comments for messages and fields
* Fix lint errors in proto files
* Add message validation and events in msg_server
* Reuse crypto utils from go-nitro
* Sign entire eth_payload object
* Use google API for rpc method
* Regenerate proto bindings
---------
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
* Add proto files for onboarding module
* Add general files for onboarding module
* Add keeper files for onboarding module
* Add module files for onboarding module
* Update proto files
* Add generated proto bindings
* Use Keeper pointer in depinject
* Fix lint errors
Part of #33
Follows PR #34
- With earlier workaround in root cmd (not passing `DefaultNodeHome` to depinject), it created a `config/client.toml` wherever the laconicd CLI was being run
- Unset `clientCtx.HomeDir` and `clientCtx.KeyringDir` while providing client context to depinject instead to prevent this and still handle the `--home` flag precedence issue
- When using default home directory, all commands still work as `DefaultNodeHome` is passed to the [command executor](https://git.vdb.to/cerc-io/laconic2d/src/branch/main/cmd/laconicd/main.go#L18)
Reviewed-on: cerc-io/laconic2d#35
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Part of cerc-io/laconic2d#32 and cerc-io/laconic2d#33
- Update context used in root command with Viper so that it recognizes the client config from home directory passed in CLI flags
- Avoid providing default home dir to depinject so that the home directory passed in CLI flags is used in txs
- Known issue: The client config from non-default home directory still doesn't seem to be getting used for some commands; in such cases, user has to pass the required flags explicitly
Reviewed-on: cerc-io/laconic2d#34
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Part of https://www.notion.so/Create-laconic-registry-SDK-d3a636d4aba44f7cbba3bd99b7146811
- Return `nil` in response when
- bond not found on `getBondsByIds` request
- authority not found on `lookupAuthorities` / `whois` request
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
Reviewed-on: deep-stack/laconic2d#20
Co-authored-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
Co-committed-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
- The E2E tests sometimes fail with error `timeout exceeded waiting for block` in CI (always passed locally)
- Update the test network setup to disable timeouts when waiting for blocks
Reviewed-on: deep-stack/laconic2d#19
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
- The E2E tests sometimes fail with error `timeout exceeded waiting for block` in CI (always passed locally)
- The error occurs in the test network (provided in cosmos-sdk) creation when [waiting](https://github.com/cosmos/cosmos-sdk/blob/v0.50.3/testutil/network/network.go#L622) for the first block because of block timeout being too short ([hardcoded](https://github.com/cosmos/cosmos-sdk/blob/v0.50.3/testutil/network/network.go#L670) to 5s)
- Copy over this network setup in the repo and patch to skip this check; we are waiting for a block to appear after the network creation anyway
Reviewed-on: deep-stack/laconic2d#18
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
- Rename RPC method to reserve authority from `ReserveName` to `ReserveAuthority`
and `GetBondsModuleBalance` to `GetBondModuleBalance`
- Run lint formatter
- Fix proto lint errors and regenerate proto bindings
Reviewed-on: deep-stack/laconic2d#17
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
- Add E2E tests following pattern suggested in cosmos-sdk docs:
https://docs.cosmos.network/v0.50/build/building-modules/testing#end-to-end-tests
- Tests for gRPC requests
- Tests for manually configured CLI commands
- Add a CI workflow to run these E2E tests
Reviewed-on: deep-stack/laconic2d#13
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
- Setup integration tests following pattern suggested in cosmos-sdk docs:
https://docs.cosmos.network/v0.50/build/building-modules/testing#integration-tests
- Add tests for laconic modules query services
- Setup a CI workflow to run the integration tests
Reviewed-on: deep-stack/laconic2d#11
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
- Registry module
- Update module state to track record / authority expiry queues
- Handle expired records and authorities at the end of each block
- Add a command to handle record renewal
Reviewed-on: deep-stack/laconic2d#7
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
For registry module:
- Add commands to:
- get records by bond id
- reserve name authority
- get name authority
- set authority bond id
- set name
- get and list names
- resolve name to a record
- delete name
- Handle:
- genesis import / export
- returning names when fetching record(s)
- sub-authority reservation
- To be handled in an upcoming PR:
- module end blocker
- record expiry
- command to renew records
- bond-association commands
Reviewed-on: deep-stack/laconic2d#6
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
To be added in an upcoming PR:
- commands to commit, reveal and get bids
Reviewed-on: deep-stack/laconic2d#2
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
* Add commands to get bonds by id and owner
* Add commands to get bond module params and balances
* Add commands to refill, withdraw and cancel bond
* Add implementations for bond tx commands
* Use indexed map to implement command for getting bond by owner
* Use collections for bond module params
* Clean up