Commit Graph

38 Commits

Author SHA1 Message Date
936ad73a89 Use registry-sdk methods to parse gas and fees (#85)
Part of [Service provider auctions for web deployments](https://www.notion.so/Service-provider-auctions-for-web-deployments-104a6b22d47280dbad51d28aa3a91d75)

Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#85
Co-authored-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
Co-committed-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
2024-10-08 03:47:11 +00:00
03422548a4 Add command to create an auction and add auction CLI tests (#83)
Part of [Service provider auctions](https://www.notion.so/Service-provider-auctions-a7b63697d818479493ec145ea6ea3c1c)

Examples:

```bash
# vickrey auction
laconic registry auction create --kind vickrey --commits-duration 60 --reveals-duration 60 --commit-fee 1000 --reveal-fee 1000 --minimum-bid 1000000
```

```bash
# provider auction
laconic registry auction create --kind provider --commits-duration 60 --reveals-duration 60 --commit-fee 1000 --reveal-fee 1000 --max-price 3000000 --num-providers 5

# Release provider auction funds
laconic registry auction release-funds --auction-id <auction-id>
```

Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#83
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-09-25 13:57:55 +00:00
86259b35a6 Add a config option and arg to set gas price for auto fees calculation (#81)
Part of [Create a public laconicd testnet](https://www.notion.so/Create-a-public-laconicd-testnet-896a11bdd8094eff8f1b49c0be0ca3b8)
Requires cerc-io/registry-sdk#22

Behaviour in different configuration scenarios:
- Gas set, fees set to `Xalnt`:

  ```bash
  # Example
  gas: 500000
  fees: 500000alnt
  gasPrice:
  ```

  - `gasPrice` config ignored
  - tx rejected if given `fees` < `gas` * `min-gas-price` set by the node
  - tx fails mid-execution if it runs out of given `gas`
- Fees not set, gas price set to `Xalnt`:

  ```bash
  # Example
  gas:
  fees:
  gasPrice: 1alnt
  ```

  - `gas` config ignored
  - uses `auto` fee calculation using gas estimation with [default multiplier](https://git.vdb.to/cerc-io/registry-sdk/src/branch/main/src/constants.ts) (`2`) value from `registry-sdk`
  - tx rejected if given `gasPrice` < `min-gas-price` set by the node
  - tx fails mid-execution if it runs out of calculated gas
- Fees set to a `X` (without `alnt` suffix), gas price set to `Yalnt`:

  ```bash
  # Example
  gas:
  fees: 1.8
  gasPrice: 1alnt
  ```

  - `gas` config ignored
  - uses `auto` fee calculation using gas estimation with `fees` as the multiplier
  - tx rejected if given `gasPrice` < `min-gas-price` set by the node
  - tx fails mid-execution if it runs out of calculated gas, can be retried with a higher gas estimation multiplier (`fees`)
- Fees and gas price both not set:

  ```bash
  # Example
  gas:
  fees:
  gasPrice:
  ```

  - `gas` config ignored
  - uses `auto` fee calculation using gas estimation
  - throws error:
    ```bash
    Gas price must be set in the client options when auto gas is used.
    ```

The provided config can be overridden with CLI args if required.

Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#81
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-09-06 09:44:47 +00:00
cf4bf5ed42 Add pagination to list records CLI (#82)
Part of [Create a public laconicd testnet](https://www.notion.so/Create-a-public-laconicd-testnet-896a11bdd8094eff8f1b49c0be0ca3b8)
Requires cerc-io/registry-sdk#27

Example CLI commands with changes:
```bash
laconic registry record list --type WebsiteRegistrationRecord --all true | jq 'length'
# 16

laconic registry record list --limit 4 --type WebsiteRegistrationRecord --all true | jq '[.[] | {id, createTime}]'
# [
#   {
#     "id": "bafyreifmjc7kc76ihrolzqhynwrebjyr7bw7pstlv2lcdq5qu4cleql7ke",
#     "createTime": "2024-09-05T13:25:46Z"
#   },
#   {
#     "id": "bafyreifipscluxu43nx5frx54tyxnkkki2edsw3jydgexfjsluq674esfa",
#     "createTime": "2024-09-05T13:25:49Z"
#   },
#   {
#     "id": "bafyreidco4d3pjro2fp6rinlazm3xcsnfm2ibzeigsqwlmmtvne25ukpjy",
#     "createTime": "2024-09-05T13:25:52Z"
#   },
#   {
#     "id": "bafyreigqoz4ffaqod5fut3rebrtctnp3ktvph46fgocmgmfqbkofnmombe",
#     "createTime": "2024-09-05T13:25:55Z"
#   }
# ]

laconic registry record list --limit 4 --offset 2 --type WebsiteRegistrationRecord --all true | jq '[.[] | {id, createTime}]'
# [
#   {
#     "id": "bafyreidco4d3pjro2fp6rinlazm3xcsnfm2ibzeigsqwlmmtvne25ukpjy",
#     "createTime": "2024-09-05T13:25:52Z"
#   },
#   {
#     "id": "bafyreigqoz4ffaqod5fut3rebrtctnp3ktvph46fgocmgmfqbkofnmombe",
#     "createTime": "2024-09-05T13:25:55Z"
#   },
#   {
#     "id": "bafyreieku22he546fsxrgwxd3mfpbtcobwjasl6zimkizl65rwvybwerci",
#     "createTime": "2024-09-05T13:25:58Z"
#   },
#   {
#     "id": "bafyreia4zjuap7v3tnilersrzsht75mqf3mhzsk72jgpcct7u6lj54zwyq",
#     "createTime": "2024-09-05T13:26:01Z"
#   }
# ]
```

Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#82
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-09-05 13:51:42 +00:00
6055da62c7 Fix default 'account get' output. (#77)
The current code throws an exception if no address is specified.  It is supposed to return the current account info.

Reviewed-on: cerc-io/laconic-registry-cli#77
Reviewed-by: David Boreham <dboreham@noreply.git.vdb.to>
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-08-20 19:01:24 +00:00
c67961869b 927: Add gettx command and have send command return the tx hash. (#78)
To support cerc-io/stack-orchestrator#927, add a new token command `gettx` to inspect a previous transaction, and adjust the output of `send` to include the tx details.

For example:

```
❯ laconic registry tokens send --address laconic1yqpc7cyfetpgmqtkk0ukevugeaau9p0cwmjlsu --type alnt --quantity 1000
{
  "tx": {
    "hash": "977152CBE474613E1BBAFEF286F12134829FAF3C9E7C8349149DE3E687B816FC",
    "height": 343369,
    "index": 0,
    "code": 0,
    "log": "",
    "sender": "laconic14wc07wa3r7rppru43g9jxkzhqnhmvfm4dgey6s",
    "recipient": "laconic1yqpc7cyfetpgmqtkk0ukevugeaau9p0cwmjlsu",
    "amount": "1000alnt"
  },
  "accounts": [
    {
      "address": "laconic14wc07wa3r7rppru43g9jxkzhqnhmvfm4dgey6s",
      "pubKey": "AvOh0Hdjj5/YKMTPEm/oLgvpg4gIP1vB4d1NhBMq6/+B",
      "number": 3,
      "sequence": 91,
      "balance": [
        {
          "type": "alnt",
          "quantity": 1.2899999999709944e+22
        }
      ]
    },
    {
      "address": "laconic1yqpc7cyfetpgmqtkk0ukevugeaau9p0cwmjlsu",
      "pubKey": "A7XYVHLemQYUjXe6VnSDlcyzLnpdJ8CE8zvDiZtgxqnT",
      "number": 1,
      "sequence": 1,
      "balance": [
        {
          "type": "alnt",
          "quantity": 1.289999999991e+22
        }
      ]
    }
  ]
}
```

```
❯ laconic registry tokens gettx --hash 977152CBE474613E1BBAFEF286F12134829FAF3C9E7C8349149DE3E687B816FC
{
  "hash": "977152CBE474613E1BBAFEF286F12134829FAF3C9E7C8349149DE3E687B816FC",
  "height": 343369,
  "index": 0,
  "code": 0,
  "log": "",
  "sender": "laconic14wc07wa3r7rppru43g9jxkzhqnhmvfm4dgey6s",
  "recipient": "laconic1yqpc7cyfetpgmqtkk0ukevugeaau9p0cwmjlsu",
  "amount": "1000alnt",
  "raw": "0A91010A8E010A1C2F636F736D6F732E62616E6B2E763162657461312E4D736753656E64126E0A2E6C61636F6E696331347763303777613372377270707275343367396A786B7A68716E686D76666D34646765793673122E6C61636F6E6963317971706337637966657470676D71746B6B30756B657675676561617539703063776D6A6C73751A0C0A04616C6E7412043130303012680A500A460A1F2F636F736D6F732E63727970746F2E736563703235366B312E5075624B657912230A2102F3A1D077638F9FD828C4CF126FE82E0BE98388083F5BC1E1DD4D84132AEBFF8112040A020801185A12140A0E0A04616C6E7412063430303030301080B5181A4088DF7BA4B63EA68E185AB2887C9EC29EBC4158874BC037816B8494AD36D3B2433B5223CECC336D4624BB7FEF4DBB4A8B5F4707ACD8E55443312009E9473DF821"
}
```

Reviewed-on: cerc-io/laconic-registry-cli#78
Reviewed-by: David Boreham <dboreham@noreply.git.vdb.to>
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-08-20 03:19:48 +00:00
acd4791355 Accept keys with or without hex prefix (#75)
Part of [laconicd testnet validator enrollment](https://www.notion.so/laconicd-testnet-validator-enrollment-6fc1d3cafcc64fef8c5ed3affa27c675)

Reviewed-on: cerc-io/laconic-registry-cli#75
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-08-14 05:32:08 +00:00
30654bb0ef Add a command to list authorities (#74)
Part of [Create a public laconicd testnet](https://www.notion.so/Create-a-public-laconicd-testnet-896a11bdd8094eff8f1b49c0be0ca3b8)

Co-authored-by: IshaVenikar <ishavenikar7@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#74
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-08-05 10:22:07 +00:00
b9d6804c17 Add a script to publish records from a given directory (#62)
Part of https://www.notion.so/Define-record-schemas-for-entities-e13e84d7cf7c4087aae69035733faff0

Reviewed-on: cerc-io/laconic-registry-cli#62
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-05-09 10:35:54 +00:00
6510c1b13f Rename laconic2d to laconicd and upgrade SDK (#61)
Part of https://www.notion.so/Rename-laconic2d-to-laconicd-9028d0c020d24d1288e92ebcb773d7a7

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#61
Co-authored-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
Co-committed-by: Prathamesh Musale <prathamesh@noreply.git.vdb.to>
2024-04-02 13:25:31 +00:00
9c992ebe71 Rename cns to registry in CLI (#57)
Part of https://www.notion.so/Create-laconic-registry-SDK-d3a636d4aba44f7cbba3bd99b7146811

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#57
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>
Co-committed-by: Nabarun <nabarun@deepstacksoft.com>
2024-03-19 04:42:42 +00:00
a33445aa4d Use registry-sdk in CLI (#56)
Part of https://www.notion.so/Create-laconic-registry-SDK-d3a636d4aba44f7cbba3bd99b7146811

- Use user key as transaction private key in record publish cmd

Co-authored-by: neeraj <neeraj.rtly@gmail.com>
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Reviewed-on: cerc-io/laconic-registry-cli#56
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>
Co-committed-by: Nabarun <nabarun@deepstacksoft.com>
2024-03-18 13:58:52 +00:00
c3f8d53f09 Setup linter and add it to CI (#54)
- Setup eslint with husky for precommit lint
- Fix existing lint errors
- Setup linter CI

Reviewed-on: cerc-io/laconic-registry-cli#54
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
2024-01-29 05:21:34 +00:00
51fd81a082 Decode JSON strings automatically. 2023-12-13 15:10:09 -06:00
f5625d0c87 Take the path as-is, not relative to the current dir. (#43)
Reviewed-on: cerc-io/laconic-registry-cli#43
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2023-12-05 03:53:15 +00:00
fb381c07f3 Fix cns name resolve (#42)
The `cns name resolve` does not return the result.  Obviously it should.

Reviewed-on: cerc-io/laconic-registry-cli#42
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2023-11-30 05:01:25 +00:00
6e0829d91f Filter by arbitrary attributes (#40)
```
laconic cns record list \
  --type GeneralRecord \
  --value anything-goes-here \
  --category filter-by-this \
  --bond-id d0094c75e267abb709d631abd7bfaa8d610413f5766ddfc07db735822905d641 \
  --owner AB0A17A1EBF47DDCF6AB267CA8E07B7EA836E1AF \
  --all
```

Reviewed-on: cerc-io/laconic-registry-cli#40
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2023-11-28 23:22:57 +00:00
129019105d Convert sub-objects (other than arrays) in YAML to JSON strings automatically. (#38)
This allows us to support attributes in YAML like this:

```
  meta:
    foo: bar
    bar:
      baz: boz
```

Which will automatically become:

```
"meta": "{\"foo\":\"bar\",\"bar\":{\"baz\":\"boz\"}}"
```

> Note: cosmos-sdk's protobuf code does not support maps (https://github.com/cosmos/cosmos-sdk/issues/15254), or else we would just use a map.

Reviewed-on: cerc-io/laconic-registry-cli#38
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2023-11-20 22:01:39 +00:00
0xmuralik
61a2aaab0f fix send output 2023-03-27 19:37:16 +05:30
0xmuralik
0c0eb79fa3 eliminate dry code 2023-03-27 18:14:42 +05:30
0xmuralik
8ebb80beed json format 2023-03-27 17:35:47 +05:30
0xmuralik
9b9e8829ec name outputs 2023-03-27 16:58:14 +05:30
0xmuralik
1de17a40ef authority and auction output 2023-03-27 13:58:41 +05:30
0xmuralik
d3020daf2e bond and records outputs 2023-03-27 13:14:02 +05:30
0xmuralik
3258e4cfe3 get bond id 2023-03-07 16:27:53 +05:30
93df49ec9e
Use published cerc-io/laconic-sdk package (#9) 2022-12-09 18:59:43 +05:30
ea55cbdc7a
Change in registry constructor (#8) 2022-12-09 14:26:00 +05:30
b08e9738cb Changes to suit repo renaming 2022-10-10 16:19:11 -06:00
e15a35aa59 Blind attempt at re-brand 2022-09-28 13:31:20 -06:00
7f09a16e2a Implement command getting status 2022-04-27 15:32:46 +05:30
11482ab5c8 Add commands for auction operations 2022-04-27 15:32:46 +05:30
7f3b07b394 Add commands for name operations 2022-04-27 15:32:46 +05:30
fe739c325f Add commands for authority operations 2022-04-27 15:32:46 +05:30
72c98e14a1 Add commands for bond and records associate/dissociate 2022-04-27 15:32:46 +05:30
1133ac774c Implement commands for bond operations 2022-04-27 15:32:46 +05:30
46a6389d58 Implement commands for account and token operations 2022-04-25 15:18:12 +05:30
97dbbf87c0 Implement commands for record operations 2022-04-25 15:18:12 +05:30
977d9a8ffa Setup subcommands with yargs 2022-04-25 15:18:12 +05:30