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

chore: move FormatCoins to x/tx #18857

Merged
merged 2 commits into from
Dec 21, 2023
Merged

chore: move FormatCoins to x/tx #18857

merged 2 commits into from
Dec 21, 2023

Conversation

facundomedica
Copy link
Member

Description

Moving FormatCoins to x/tx/signing/textual given that that's the only place where it's being used.

Closes: #XXXX


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 in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • reviewed "Files changed" and left comments if necessary
  • included the necessary unit and integration tests
  • added a changelog entry to CHANGELOG.md
  • updated the relevant documentation or specification, including comments for documenting Go code
  • 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 in the PR title
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

@facundomedica facundomedica requested a review from a team as a code owner December 21, 2023 16:35
Copy link
Contributor

coderabbitai bot commented Dec 21, 2023

Walkthrough

The codebase underwent a refactoring where the functionality for formatting and sorting coin values was moved from the core/coins package to the x/tx/signing/textual package. The coinType struct's methods were updated to accommodate new parameters, and the default value method was simplified to return a constant string. Additionally, the associated tests were adjusted to reflect these changes, with certain functions and constants being removed and new ones introduced.

Changes

File Path Change Summary
client/v2/autocli/flag/coin.go Updated NewValue method; Simplified DefaultValue.
core/coins/format.go Removed formatting functions, constants, and imports.
core/coins/format_test.go Removed test types and functions.
x/tx/signing/textual/coins.go Moved in formatting functions; Updated imports.
x/tx/signing/textual/coins_test.go Added new test functions and types; Updated imports.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on X ?


Tips

Chat with CodeRabbit Bot (@coderabbitai)

  • You can reply to a review comment made by CodeRabbit.
  • You can tag CodeRabbit on specific lines of code or files in the PR by tagging @coderabbitai in a comment.
  • You can tag @coderabbitai in a PR comment and ask one-off questions about the PR and the codebase. Use quoted replies to pass the context for follow-up questions.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json


return strings.Join(formatted, ", "), nil
}

// ParseCoin parses a coin from a string. The string must be in the format
// <amount><denom>, where <amount> is a number and <denom> is a valid denom.
func ParseCoin(input string) (*basev1beta1.Coin, error) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ParseCoin is being left here as it's being used in autocli. textual has its own parsing, which is only used in tests

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@julienrbrt what do you think of moving this to client/v2? do we see this being used anywhere else in the future?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, we can move that into client/v2 (please in the internal package however)

Copy link
Member

@tac0turtle tac0turtle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for picking this up! left a question but we dont have to block on merging to get that answered

// alphabetically by value-rendered denoms. It expects an array of metadata
// (optionally nil), where each metadata at index `i` MUST match the coin denom
// at the same index.
func FormatCoins(coins []*basev1beta1.Coin, metadata []*bankv1beta1.Metadata) (string, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get a changelog in core, as this is breaking?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pushed, thank you!!


### Improvements

* [#18857](https://github.com/cosmos/cosmos-sdk/pull/18857) Moved `FormatCoins` from `core/coins` to this package under `signing/textual`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The entry for moving FormatCoins is currently listed under "Improvements". Given that this is a relocation of a public function to a different package, it should be considered an "API Breaking" change. Please ensure that this entry is placed under the correct stanza to accurately reflect the nature of the change.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's breaking for the core package but an improvement for the x/tx package imo

Copy link
Member

@julienrbrt julienrbrt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm. Is the move to AutoCLI of the other function happening in this PR too?

@tac0turtle tac0turtle added this pull request to the merge queue Dec 21, 2023
Merged via the queue into main with commit f4e9a1e Dec 21, 2023
60 of 61 checks passed
@tac0turtle tac0turtle deleted the facu/move-formatcoins branch December 21, 2023 17:38
@facundomedica
Copy link
Member Author

lgtm. Is the move to AutoCLI of the other function happening in this PR too?

I was going to push it here too but I was too slow lol, I'll open a new PR in a bit

@tac0turtle
Copy link
Member

pushed #18861

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants