From bd842e927baeae2441cd390442b6e88f2e7d0131 Mon Sep 17 00:00:00 2001 From: Victor Oliva Date: Wed, 21 Aug 2024 10:44:02 +0200 Subject: [PATCH] add ss58 validation --- src/actions/send/SendAction.tsx | 6 ++++-- src/actions/send/create.tsx | 2 ++ src/actions/send/send.ts | 10 +++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/actions/send/SendAction.tsx b/src/actions/send/SendAction.tsx index 5f44414..01ed1c6 100644 --- a/src/actions/send/SendAction.tsx +++ b/src/actions/send/SendAction.tsx @@ -5,7 +5,8 @@ import { truncateAddress } from "@/utils/address.ts" import { Field, Label, Radio, RadioGroup } from "@headlessui/react" import { state, useStateObservable } from "@react-rxjs/core" import { merge } from "rxjs" -import { formatCurrencyWithSymbol } from "../../utils/format-currency.ts" +import { formatCurrencyWithSymbol } from "@/utils/format-currency.ts" +import { getSs58AddressInfo } from "polkadot-api" import { accountsWithSufficientBalance$, @@ -36,10 +37,11 @@ export default function SendAction() { const transferAmount = useStateObservable(transferAmount$) const recipient = useStateObservable(recipient$) const token = useStateObservable(token$) + const info = getSs58AddressInfo(recipient ?? "") if (!recipientChainData) return "No valid recipient chain" if (!transferAmount) return "Specify Transfer Amount" - if (!recipient) return "No valid recipient" + if (!recipient || !info.isValid) return "No valid recipient" if (!token) return "No valid token" const decimals = tokenDecimals[token as SupportedTokens] diff --git a/src/actions/send/create.tsx b/src/actions/send/create.tsx index 158eafa..fe1232c 100644 --- a/src/actions/send/create.tsx +++ b/src/actions/send/create.tsx @@ -18,6 +18,8 @@ const chains$ = state( ) const chainCurrencies: Partial> = { polkadotAssetHub: ["USDC", "USDT"], + rococoAssetHub: ["WND"], + westendAssetHub: ["ROC"], } const [chainSelected$, selectChain] = createSignal() diff --git a/src/actions/send/send.ts b/src/actions/send/send.ts index 5aec6d8..05879a2 100644 --- a/src/actions/send/send.ts +++ b/src/actions/send/send.ts @@ -16,6 +16,7 @@ import { catchError, combineLatest, defer, + EMPTY, filter, map, materialize, @@ -215,7 +216,14 @@ export const feeEstimation$ = state( .tx(recipient, transferAmount) .getEstimatedFees(selectedAccount.address), ), - ).pipe(map((v) => v.reduce((a, b) => a + b, 0n))) + ).pipe( + map((v) => v.reduce((a, b) => a + b, 0n)), + catchError((e) => { + console.error(e) + errorToast("Error when getting estimated fees: " + e.message) + return EMPTY + }), + ) : [null] }, ),