diff --git a/demo/components/providers/RelayKitProviderWrapper.tsx b/demo/components/providers/RelayKitProviderWrapper.tsx index 0853be28c..f004cf45b 100644 --- a/demo/components/providers/RelayKitProviderWrapper.tsx +++ b/demo/components/providers/RelayKitProviderWrapper.tsx @@ -56,7 +56,17 @@ export const RelayKitProviderWrapper: FC<{ url: MAINNET_RELAY_WS }, secureBaseUrl: process.env.NEXT_PUBLIC_RELAY_SECURE_API_URL, - appFees: appFeesEnabled ? DEFAULT_APP_FEES : undefined + appFees: appFeesEnabled ? DEFAULT_APP_FEES : undefined, + logger: (message, level) => { + window.dispatchEvent( + new CustomEvent('relay-kit-logger', { + detail: { + message, + level + } + }) + ) + } }} theme={{ font: 'Barlow, -apple-system, Helvetica, sans-serif', diff --git a/demo/pages/sdk/actions/swap.tsx b/demo/pages/sdk/actions/swap.tsx index 03f7387b5..5de9f98a4 100644 --- a/demo/pages/sdk/actions/swap.tsx +++ b/demo/pages/sdk/actions/swap.tsx @@ -1,6 +1,5 @@ import { NextPage } from 'next' -import { useState } from 'react' -import { base, zora } from 'viem/chains' +import { useEffect, useState } from 'react' import { Address } from 'viem' import { useRelayClient } from '@relayprotocol/relay-kit-ui' import { ConnectButton } from 'components/ConnectButton' @@ -9,35 +8,51 @@ import { isEthereumWallet } from '@dynamic-labs/ethereum' import { isSolanaWallet } from '@dynamic-labs/solana' import { adaptSolanaWallet } from '@relayprotocol/relay-svm-wallet-adapter' import { adaptBitcoinWallet } from '@relayprotocol/relay-bitcoin-wallet-adapter' -import { adaptViemWallet } from '@relayprotocol/relay-sdk' +import { + adaptViemWallet, + Execute, + GetQuoteParameters, + LogLevel +} from '@relayprotocol/relay-sdk' import { adaptSuiWallet } from '@relayprotocol/relay-sui-wallet-adapter' import { isBitcoinWallet } from '@dynamic-labs/bitcoin' -import { SuiWallet } from '@dynamic-labs/sui' import { isSuiWallet } from '@dynamic-labs/sui' const SwapActionPage: NextPage = () => { - const [recipient, setRecipient] = useState() - const [amount, setAmount] = useState('') - const [toChainId, setToChainId] = useState(zora.id) - const [fromChainId, setFromChainId] = useState(base.id) - const [toCurrency, setToCurrency] = useState('') - const [fromCurrency, setFromCurrency] = useState('') - const [depositGasLimit, setDepositGasLimit] = useState('') - const [tradeType, setTradeType] = useState<'EXACT_INPUT' | 'EXACT_OUTPUT'>( - 'EXACT_INPUT' - ) - const [txs, setTxs] = useState([]) - const [tx, setTx] = useState('') const client = useRelayClient() const { primaryWallet: primaryWallet } = useDynamicContext() + const [jsonPayload, setJsonPayload] = useState() + const [error, setError] = useState() + const [logs, setLogs] = useState<{ message: string[]; level: LogLevel }[]>([]) + const [quote, setQuote] = useState() + const [tab, setTab] = useState<'logs' | 'quote'>('logs') + + useEffect(() => { + const handler = ( + e: CustomEvent<{ message: string[]; level: LogLevel }> + ) => { + setLogs((prevLogs) => [ + ...prevLogs, + { + message: e.detail.message.map((message) => JSON.stringify(message)), + level: e.detail.level + } + ]) + } + + window.addEventListener('relay-kit-logger', handler as any) + + return () => { + window.removeEventListener('relay-kit-logger', handler as any) + } + }, []) return (
{ }} > -
- - setToChainId(Number(e.target.value))} - /> -
-
- - setToCurrency(e.target.value)} - /> -
-
- - setFromChainId(Number(e.target.value))} - /> -
-
- - setFromCurrency(e.target.value)} - /> -
-
- - setAmount(e.target.value)} - /> -
-
- - setRecipient(e.target.value)} - /> -
-
- - setDepositGasLimit(e.target.value)} - /> -
-
- -
- setTradeType(e.target.value as 'EXACT_INPUT')} - /> - -
-
- setTradeType(e.target.value as 'EXACT_OUTPUT')} - /> - -
-
-
- -