laconicd/x/registry/module/autocli.go
Prathamesh Musale ec6e2f3776
All checks were successful
Integration Tests / test-integration (push) Successful in 2m40s
E2E Tests / test-e2e (push) Successful in 3m59s
Unit Tests / test-unit (push) Successful in 2m8s
Publish on release / Run docker build and publish (release) Successful in 2m51s
SDK Tests / sdk_tests_nameservice_expiry (push) Successful in 8m38s
SDK Tests / sdk_tests (push) Successful in 8m37s
SDK Tests / sdk_tests_auctions (push) Successful in 13m48s
Add a query to list authorities (#42)
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>
2024-07-24 09:14:39 +00:00

181 lines
5.2 KiB
Go

package module
import (
autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
"cosmossdk.io/client/v2/autocli"
registryv1 "git.vdb.to/cerc-io/laconicd/api/cerc/registry/v1"
)
var _ autocli.HasAutoCLIConfig = AppModule{}
// AutoCLIOptions implements the autocli.HasAutoCLIConfig interface.
func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions {
return &autocliv1.ModuleOptions{
Query: &autocliv1.ServiceCommandDescriptor{
Service: registryv1.Query_ServiceDesc.ServiceName,
RpcCommandOptions: []*autocliv1.RpcCommandOptions{
{
RpcMethod: "Params",
Use: "params",
Short: "Get the current registry parameters",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{},
},
{
RpcMethod: "Records",
Use: "list",
Short: "List records",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{},
},
{
RpcMethod: "GetRecord",
Use: "get [record-id]",
Short: "Get record info by record id",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "id"},
},
},
{
RpcMethod: "GetRecordsByBondId",
Use: "get-records-by-bond-id [bond-id]",
Short: "Get records by bond id",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "id"},
},
},
{
RpcMethod: "Whois",
Use: "whois [name]",
Short: "Get name authority info",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "name"},
},
},
{
RpcMethod: "Authorities",
Use: "list-authorities",
Short: "List authorities (optionally by owner)",
FlagOptions: map[string]*autocliv1.FlagOptions{
"owner": {
Name: "owner",
Usage: "Owner to get the authorities for",
DefaultValue: "",
},
},
},
{
RpcMethod: "NameRecords",
Use: "names",
Short: "List name records",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{},
},
{
RpcMethod: "LookupLrn",
Use: "lookup [lrn]",
Short: "Get naming info for LRN",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "lrn"},
},
},
{
RpcMethod: "ResolveLrn",
Use: "resolve [lrn]",
Short: "Resolve LRN to record",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "lrn"},
},
},
{
RpcMethod: "GetRegistryModuleBalance",
Use: "balance",
Short: "Get registry module account balances",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{},
},
},
},
Tx: &autocliv1.ServiceCommandDescriptor{
Service: registryv1.Msg_ServiceDesc.ServiceName,
RpcCommandOptions: []*autocliv1.RpcCommandOptions{
{
RpcMethod: "RenewRecord",
Use: "renew-record [record-id]",
Short: "Renew (expired) record",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "record_id"},
},
},
{
RpcMethod: "ReserveAuthority",
Use: "reserve-authority [name] [owner]",
Short: "Reserve authority name",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "name"},
{ProtoField: "owner"},
},
},
{
RpcMethod: "SetAuthorityBond",
Use: "authority-bond [name] [bond-id]",
Short: "Associate authority with bond",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "name"},
{ProtoField: "bond_id"},
},
},
{
RpcMethod: "SetName",
Use: "set-name [lrn] [cid]",
Short: "Set LRN to CID mapping",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "lrn"},
{ProtoField: "cid"},
},
},
{
RpcMethod: "DeleteName",
Use: "delete-name [lrn]",
Short: "Delete LRN",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "lrn"},
},
},
{
RpcMethod: "AssociateBond",
Use: "associate-bond [record-id] [bond-id]",
Short: "Associate record with a bond",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "record_id"},
{ProtoField: "bond_id"},
},
},
{
RpcMethod: "DissociateBond",
Use: "dissociate-bond [record-id]",
Short: "Dissociate record from (existing) bond",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "record_id"},
},
},
{
RpcMethod: "DissociateRecords",
Use: "dissociate-records [bond-id]",
Short: "Dissociate all records from a bond",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "bond_id"},
},
},
{
RpcMethod: "ReassociateRecords",
Use: "reassociate-records [old-bond-id] [new-bond-id]",
Short: "Re-associate all records from an old to a new bond",
PositionalArgs: []*autocliv1.PositionalArgDescriptor{
{ProtoField: "old_bond_id"},
{ProtoField: "new_bond_id"},
},
},
},
EnhanceCustomCommand: true, // Allow additional manual commands
},
}
}