Skip to content
Merged
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
8 changes: 7 additions & 1 deletion src/lib/cosmos/fees.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
gasWanted: number;
}

const BZE_SIMULATE_PROXY_URL = 'https://api.vidulum.app/bze/cosmos/tx/v1beta1/simulate';

// Cache for params
let tradebinParamsCache: TradebinParams | null = null;
let tradebinParamsCacheTime = 0;
Expand Down Expand Up @@ -164,7 +166,11 @@

const txBytes = TxRaw.encode(txRaw).finish();

const response = await fetch(`${restEndpoint}/cosmos/tx/v1beta1/simulate`, {
const simulateUrl = restEndpoint.includes('rest.getbze.com')
? BZE_SIMULATE_PROXY_URL
: `${restEndpoint}/cosmos/tx/v1beta1/simulate`;

const response = await fetch(simulateUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
Expand Down
24 changes: 20 additions & 4 deletions src/popup/pages/Swap.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import { Keypair, PublicKey } from '@solana/web3.js';
*/
const VIDULUM_FEE_BPS = import.meta.env.VIDULUM_FEE_BPS || '';
const VIDULUM_FEE_BASE_ADDRESS = import.meta.env.VIDULUM_FEE_BASE_ADDRESS || '';
const SKIP_API_URL = 'https://api.vidulum.app/skip/api/skip/v2';

const skipSvmChainIdByNetworkId: Record<string, string> = {
'solana-mainnet': 'solana',
Expand Down Expand Up @@ -292,16 +293,24 @@ const SwapPage: React.FC<SwapPageProps> = ({ onBack }) => {

for (const network of enabledNetworks) {
if (isCosmosNetwork(network)) {
filter[network.id] = undefined;
if (connectedAddresses[network.id]) {
filter[network.id] = undefined;
}
} else if (isEvmNetwork(network)) {
filter[String(network.chainId)] = undefined;
const skipChainId = String(network.chainId);
if (connectedAddresses[skipChainId]) {
filter[skipChainId] = undefined;
}
} else if (isSvmNetwork(network)) {
filter[getSkipSvmChainId(network)] = undefined;
const skipChainId = getSkipSvmChainId(network);
if (connectedAddresses[skipChainId]) {
filter[skipChainId] = undefined;
}
}
}

return filter;
}, [getEnabledNetworks]);
}, [getEnabledNetworks, connectedAddresses]);

/**
* Build chainIdsToAffiliates for Vidulum's fee collection.
Expand Down Expand Up @@ -560,6 +569,7 @@ const SwapPage: React.FC<SwapPageProps> = ({ onBack }) => {
<Box flex="1" overflow="auto" p={2}>
<Box w="100%" maxW="480px" mx="auto">
<Widget
apiUrl={SKIP_API_URL}
// --- Default route: start with Osmosis OSMO ---
defaultRoute={{
srcChainId: 'osmosis-1',
Expand Down Expand Up @@ -587,12 +597,18 @@ const SwapPage: React.FC<SwapPageProps> = ({ onBack }) => {
}}
// --- Theme ---
theme={widgetTheme}
// --- Disable external WalletConnect integration ---
walletConnect={{
options: null,
walletConnectModal: null,
}}
// --- Custom endpoints from our failover system ---
endpointOptions={endpointOptions}
// --- Affiliate fees: 0.75% to Vidulum on every chain ---
chainIdsToAffiliates={chainIdsToAffiliates}
// --- Injected wallet: pass connected addresses + Cosmos signer ---
connectedAddresses={connectedAddresses}
hideAssetsUnlessWalletTypeConnected={true}
getCosmosSigner={getCosmosSigner}
getEvmSigner={getEvmSigner}
getSvmSigner={getSvmSigner}
Expand Down
35 changes: 34 additions & 1 deletion src/web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,40 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vidulum Wallet</title>
<title>Vidulum Wallet | Cross-Chain Wallet for Cosmos, EVM, and Solana</title>
<meta
name="description"
content="Vidulum Wallet is a cross-chain browser wallet for Cosmos, EVM, and Solana. Use Vidulum for IBC transfers, token sends, and multi-chain swaps."
/>
<meta
name="keywords"
content="Vidulum, Vidulum Wallet, Vidulum Extension, cross-chain wallet, Cosmos wallet, IBC wallet, Osmosis swap, BeeZee wallet, EVM wallet, Solana wallet"
/>
<meta name="robots" content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Vidulum Wallet | Cross-Chain Wallet for Cosmos, EVM, and Solana" />
<meta
property="og:description"
content="Use Vidulum Wallet to manage Cosmos, EVM, and Solana assets with cross-chain swaps and IBC support."
/>
<meta property="og:site_name" content="Vidulum Wallet" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Vidulum Wallet | Cross-Chain Wallet for Cosmos, EVM, and Solana" />
<meta
name="twitter:description"
content="Vidulum Wallet helps you swap, send, and manage assets across Cosmos, EVM, and Solana networks."
/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Vidulum Wallet",
"applicationCategory": "FinanceApplication",
"operatingSystem": "Web, Browser Extension",
"description": "Vidulum Wallet is a cross-chain wallet for Cosmos, EVM, and Solana with IBC transfers and multi-chain swaps.",
"keywords": "Vidulum, cross-chain wallet, Cosmos wallet, IBC wallet, EVM wallet, Solana wallet"
}
</script>
<style>
html,
body,
Expand Down
19 changes: 18 additions & 1 deletion src/web/main.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import { ChakraProvider, extendTheme, Flex, HStack, Link, Icon } from '@chakra-ui/react';
import { ChakraProvider, extendTheme, Flex, HStack, Link, Icon, Text, Box } from '@chakra-ui/react';
import App from '@/popup/App';
import { initDeveloperModeLogging } from '@/lib/debug/developerMode';

Expand Down Expand Up @@ -96,6 +96,23 @@ const WebAppFrame: React.FC<{ children: React.ReactNode }> = ({ children }) => (
>
{children}
</Flex>
<Box
maxW="900px"
mt={6}
px={4}
pb={4}
color="gray.300"
textAlign="center"
display={{ base: 'none', md: 'block' }}
>
<Text fontSize="sm" fontWeight="semibold" mb={1}>
Vidulum Wallet
</Text>
<Text fontSize="xs" color="gray.400">
Vidulum is a cross-chain wallet for Cosmos, EVM, and Solana. Use the Vidulum extension
for IBC transfers, multi-chain swaps, and secure asset management across supported networks.
</Text>
</Box>
</Flex>
);

Expand Down