Skip to content

Commit

Permalink
fix: handle non standard currency with decoded length of 3 (#1131)
Browse files Browse the repository at this point in the history
## High Level Overview of Change

<!--
Please include a summary/list of the changes.
If too broad, please consider splitting into multiple PRs.
-->
Handle non standard currency that decoded to 3 characters, putting
prefix `Fake` to such currency.

Instead of being non-standard, 3 character currency codes should use the
[standard
format](https://xrpl.org/docs/references/protocol/data-types/currency-formats#standard-currency-codes)
if they are not "fake".

### Context of Change

<!--
Please include the context of a change.
If a bug fix, when was the bug introduced? What was the behavior?
If a new feature, why was this architecture chosen? What were the
alternatives?
If a refactor, how is this better than the previous implementation?

If there is a design document for this feature, please link it here.
-->
Resolve #1130

### Type of Change

<!--
Please check relevant options, delete irrelevant ones.
-->

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Refactor (non-breaking change that only restructures code)
- [ ] Tests (You added tests for code that already exists, or your new
feature included in this PR)
- [ ] Documentation Updates
- [ ] Translation Updates
- [ ] Release

## Before / After

<!--
If just refactoring / back-end changes, this can be just an in-English
description of the change at a technical level.
If a UI change, screenshots should be included.
-->

### Before

<img width="941" alt="Screenshot 2025-02-19 at 4 06 15 PM"
src="https://github.com/user-attachments/assets/f7df4ce9-942e-4274-b7ea-39050b976456"
/>

### After

<img width="952" alt="Screenshot 2025-02-19 at 4 07 00 PM"
src="https://github.com/user-attachments/assets/95e46ee3-01c7-425d-a0ca-d2e584eccb76"
/>

---------

Co-authored-by: Elliot Lee <[email protected]>
  • Loading branch information
pdp2121 and intelliot authored Feb 25, 2025
1 parent 7173dfb commit 79892cb
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/containers/shared/components/Currency.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,19 @@ const Currency = (props: Props) => {
display
)
} else {
const currencyCode =
let currencyCode =
currency?.length === NON_STANDARD_CODE_LENGTH &&
currency?.substring(0, 2) !== LP_TOKEN_IDENTIFIER
? hexToString(currency)
: currency

if (
currency?.length === NON_STANDARD_CODE_LENGTH &&
currencyCode.length === 3
) {
currencyCode = `Fake${currencyCode}`
}

let display = `${currencyCode}`

if (currencyCode === XRP && displaySymbol) {
Expand Down
7 changes: 7 additions & 0 deletions src/containers/shared/components/test/Currency.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,13 @@ describe('Currency', () => {
wrapper.unmount()
})

it('handle non-standard currency decoded to equal or fewer than 3 characters', () => {
const wrapper = mount(
<Currency currency="5852500000000000000000000000000000000000" />,
)
expect(wrapper.find('.currency').text()).toEqual('FakeXRP')
})

it('displays the XRP symbol when rendering XRP', () => {
const wrapper = mount(<Currency currency="XRP" />)
expect(wrapper.find('.currency').text()).toEqual('\uE900 XRP')
Expand Down

0 comments on commit 79892cb

Please sign in to comment.