Skip to content

Commit 163024a

Browse files
committed
fixup! Reuse WalletListModal as the Houdini private send picker
1 parent 13e6d6b commit 163024a

2 files changed

Lines changed: 10 additions & 23 deletions

File tree

src/components/scenes/HoudiniPrivateSendScene.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import * as React from 'react'
44

55
import { useHandler } from '../../hooks/useHandler'
66
import { lstrings } from '../../locales/strings'
7+
import { getExchangeDenom } from '../../selectors/DenominationSelectors'
78
import { useState } from '../../types/reactHooks'
89
import { useSelector } from '../../types/reactRedux'
910
import type { EdgeAppSceneProps, NavigationBase } from '../../types/routerTypes'
1011
import { getWalletName } from '../../util/CurrencyWalletHelpers'
1112
import {
1213
fetchHoudiniPrivateQuote,
13-
getPrimaryMultiplier,
1414
HOUDINI_DESTINATION_ASSETS,
1515
HOUDINI_DESTINATION_EDGE_ASSETS,
1616
type HoudiniDestinationAsset,
@@ -169,10 +169,10 @@ export const HoudiniPrivateSendScene: React.FC<Props> = props => {
169169
}
170170
setPending(true)
171171
try {
172-
const fromMultiplier = getPrimaryMultiplier(
172+
const fromMultiplier = getExchangeDenom(
173173
fromWallet.currencyConfig,
174174
fromTokenId
175-
)
175+
).multiplier
176176
const nativeAmount = round(mul(displayAmount, fromMultiplier), 0)
177177

178178
const quote = await fetchHoudiniPrivateQuote(account, {
@@ -185,7 +185,10 @@ export const HoudiniPrivateSendScene: React.FC<Props> = props => {
185185
})
186186

187187
const toConfig = account.currencyConfig[destAsset.pluginId]
188-
const toMultiplier = getPrimaryMultiplier(toConfig, destAsset.tokenId)
188+
const toMultiplier = getExchangeDenom(
189+
toConfig,
190+
destAsset.tokenId
191+
).multiplier
189192
const fromDisplay = div(quote.fromNativeAmount, fromMultiplier, 8)
190193
const toDisplay = div(quote.toNativeAmount, toMultiplier, 8)
191194

src/util/houdiniPrivateSend.ts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type {
22
EdgeAccount,
3-
EdgeCurrencyConfig,
43
EdgeCurrencyWallet,
54
EdgeSwapQuote,
65
EdgeSwapRequest,
@@ -82,8 +81,9 @@ export const HOUDINI_DESTINATION_ASSETS: HoudiniDestinationAsset[] = [
8281
tokenId: null,
8382
currencyCode: 'SOL',
8483
displayName: 'Solana',
85-
addressValidation:
86-
/^[1-9A-HJ-NP-SU-Za-hj-np-su-z][1-9A-HJ-NP-Za-km-z]{31,43}$/
84+
// Base58, 32-44 chars; every position uses the full Base58 alphabet
85+
// (excludes 0, O, I, l).
86+
addressValidation: /^[1-9A-HJ-NP-Za-km-z]{32,44}$/
8787
},
8888
{
8989
pluginId: 'tron',
@@ -149,22 +149,6 @@ export function isValidHoudiniDestination(
149149
return asset.addressValidation.test(address.trim())
150150
}
151151

152-
/**
153-
* The primary-unit multiplier for an asset, used to convert a user-entered
154-
* display amount to and from a native (atomic) amount.
155-
*/
156-
export function getPrimaryMultiplier(
157-
currencyConfig: EdgeCurrencyConfig,
158-
tokenId: EdgeTokenId
159-
): string {
160-
const { allTokens, currencyInfo } = currencyConfig
161-
const denominations =
162-
tokenId == null
163-
? currencyInfo.denominations
164-
: allTokens[tokenId]?.denominations ?? currencyInfo.denominations
165-
return denominations[0].multiplier
166-
}
167-
168152
export interface HoudiniPrivateQuoteParams {
169153
fromWallet: EdgeCurrencyWallet
170154
fromTokenId: EdgeTokenId

0 commit comments

Comments
 (0)