Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLI for Tips transactions #10264

Closed
4 tasks
amaury1093 opened this issue Sep 29, 2021 · 1 comment · Fixed by #10311
Closed
4 tasks

CLI for Tips transactions #10264

amaury1093 opened this issue Sep 29, 2021 · 1 comment · Fixed by #10311
Assignees

Comments

@amaury1093
Copy link
Contributor

amaury1093 commented Sep 29, 2021

Part of the TX working group.

Summary

Think about the CLI UX for using meta-transactions.

Problem Definition

We added meta-transactions in #9406 and #9912. However, currently we only test them programmatically, e.g. using the SDK's TxBuilder.

We should think how end-users interact with meta-transactions.

Proposal (outdated, see comments below instead)

The SDK's user interface is the CLI, so this issue proposes to make changes to the current CLI.

Oudated proposal
  1. Add --sign-mode=direct-aux flag
  2. Add --sign-mode=amino-aux flag
  3. Add a simd tx tips-to-fee <aux_signed_tx.json> sub-command
    • will read a {AMINO,DIRECT}_AUX-signed tx from a JSON file, create a fee-appended tx, and broadcast it.

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@amaury1093 amaury1093 changed the title CLI for meta-transactions CLI for Tips transactions Oct 1, 2021
@amaury1093
Copy link
Contributor Author

amaury1093 commented Nov 25, 2021

With the new AuxTxBuilder, any ideas on how to create a nice CLI UX for aux signers?

Currently I'm leaning towards:

Proposal : Add an --aux flag to all tx commands

Example:

simd tx bank send {...args} --aux --tip {some_tip}

This will print the AuxSignerData as JSON.

Pros:

  • Small code changes

Cons:

  • We put flags that can't overlap under the same command. If we have --aux, then --fees, --broadcast-mode, --generate-only etc don't make sense anymore. It can cause confusion, the help command should be updated.

Also: I kind of don't want to put aux stuff in the TxFactory. It would add too much if/elses in an already confusing code. IMO we just need a method

func (c client.Context) makeAuxSignerData() (AuxSignerData, error)

that takes a AuxTxBuilder and a keyring, and outputs a AuxSignerData that the CLI will print as JSON.

@mergify mergify bot closed this as completed in #10311 Dec 7, 2021
mergify bot pushed a commit that referenced this issue Dec 7, 2021
<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

Closes: #10264 

This PR makes 2 changes in the CLI:

### 1. Add an `--aux` flag to all tx command.

```bash
simd tx bank send <from> <to> <amount> --aux (optional: --tip <tipAmt> --tipper <tipper>)
```

This will print an AuxSignerData instead of broadcasting the tx.

### 2. Add a new `aux-to-fee` subcommand

```bash
simd tx aux-to-fee <aux_signer_data.json>
```

This takes the output of the previous command, and broadcasts a 2-signer tx.



<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
blewater pushed a commit to e-money/cosmos-sdk that referenced this issue Dec 8, 2021
<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

Closes: cosmos#10264 

This PR makes 2 changes in the CLI:

### 1. Add an `--aux` flag to all tx command.

```bash
simd tx bank send <from> <to> <amount> --aux (optional: --tip <tipAmt> --tipper <tipper>)
```

This will print an AuxSignerData instead of broadcasting the tx.

### 2. Add a new `aux-to-fee` subcommand

```bash
simd tx aux-to-fee <aux_signer_data.json>
```

This takes the output of the previous command, and broadcasts a 2-signer tx.



<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
larry0x pushed a commit to larry0x/cosmos-sdk that referenced this issue May 22, 2023
<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

Closes: cosmos#10264 

This PR makes 2 changes in the CLI:

### 1. Add an `--aux` flag to all tx command.

```bash
simd tx bank send <from> <to> <amount> --aux (optional: --tip <tipAmt> --tipper <tipper>)
```

This will print an AuxSignerData instead of broadcasting the tx.

### 2. Add a new `aux-to-fee` subcommand

```bash
simd tx aux-to-fee <aux_signer_data.json>
```

This takes the output of the previous command, and broadcasts a 2-signer tx.



<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants