Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Unreleased (develop)

- added: Houdini private send prototype (dev-only): a swap-to-address flow that gets a live HoudiniSwap private quote, creates the private exchange order, and broadcasts the on-chain deposit. Depends on unpublished edge-core-js and edge-exchange-plugins changes.
- added: Logbox disable option to env.json
- added: Reverse-resolve recipient addresses to ENS / Unstoppable Domains / ZNS names in the send flow, address modal, and transaction history.

Expand Down
2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ export default [
'src/components/rows/EdgeRow.tsx',

'src/components/rows/PaymentMethodRow.tsx',
'src/components/rows/SwapProviderRow.tsx',

'src/components/rows/TxCryptoAmountRow.tsx',

'src/components/scenes/ChangeMiningFeeScene.tsx',
Expand Down
5 changes: 3 additions & 2 deletions src/actions/CategoriesActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -382,8 +382,9 @@ export const getTxActionDisplayInfo = (
? lstrings.transaction_details_swap_to_subcat_1s
: lstrings.transaction_details_swap_from_subcat_1s
const walletName =
account.currencyWallets[action.payoutWalletId]?.name ??
displayName
(action.payoutWalletId != null
? account.currencyWallets[action.payoutWalletId]?.name
: undefined) ?? displayName
edgeCategory = {
category: 'transfer',
subcategory: sprintf(toFromStr, walletName)
Expand Down
6 changes: 6 additions & 0 deletions src/components/Main.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ import {
} from './scenes/GuiPluginListScene'
import { GuiPluginViewScene as GuiPluginViewSceneComponent } from './scenes/GuiPluginViewScene'
import { HomeScene as HomeSceneComponent } from './scenes/HomeScene'
import { HoudiniPrivateSendScene as HoudiniPrivateSendSceneComponent } from './scenes/HoudiniPrivateSendScene'
import { LoanCloseScene as LoanCloseSceneComponent } from './scenes/Loans/LoanCloseScene'
import { LoanCreateConfirmationScene as LoanCreateConfirmationSceneComponent } from './scenes/Loans/LoanCreateConfirmationScene'
import { LoanCreateScene as LoanCreateSceneComponent } from './scenes/Loans/LoanCreateScene'
Expand Down Expand Up @@ -246,6 +247,7 @@ const GiftCardAccountInfoScene = ifLoggedIn(GiftCardAccountInfoSceneComponent)
const GiftCardListScene = ifLoggedIn(GiftCardListSceneComponent)
const GiftCardMarketScene = ifLoggedIn(GiftCardMarketSceneComponent)
const GiftCardPurchaseScene = ifLoggedIn(GiftCardPurchaseSceneComponent)
const HoudiniPrivateSendScene = ifLoggedIn(HoudiniPrivateSendSceneComponent)
const LoanCloseScene = ifLoggedIn(LoanCloseSceneComponent)
const LoanCreateConfirmationScene = ifLoggedIn(
LoanCreateConfirmationSceneComponent
Expand Down Expand Up @@ -958,6 +960,10 @@ const EdgeAppStack: React.FC = () => {
)
}}
/>
<AppStack.Screen
name="houdiniPrivateSend"
component={HoudiniPrivateSendScene}
/>
<AppStack.Screen name="loanClose" component={LoanCloseScene} />
<AppStack.Screen name="loanCreate" component={LoanCreateScene} />
<AppStack.Screen
Expand Down
8 changes: 7 additions & 1 deletion src/components/rows/SwapProviderRow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@ export const SwapProviderRow: React.FC<Props> = (props: Props) => {
const { quote } = props
const { request, toNativeAmount, fromNativeAmount } = quote
const { quoteFor } = request
const { fromWallet, fromTokenId, toWallet, toTokenId } = request
const { fromWallet, fromTokenId, toTokenId } = request
// A wallet-to-wallet swap quote always carries a destination wallet; only a
// swap-to-address request (its own flow) omits it.
const toWallet = request.toWallet
if (toWallet == null) {
throw new Error('Swap quote is missing a destination wallet')
}
const theme = useTheme()
const styles = getStyles(theme)

Expand Down
6 changes: 6 additions & 0 deletions src/components/scenes/DevTestScene.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,12 @@ export const DevTestScene: React.FC<Props> = props => {
<SectionView>
<>
<SectionHeader leftTitle="Scenes" />
<EdgeButton
label={lstrings.houdini_private_send_title}
onPress={() => {
navigation.navigate('houdiniPrivateSend')
}}
/>
<EdgeButton
label="AddressFormScene"
onPress={handleAddressFormPress}
Expand Down
Loading