import { useState } from 'react';
function AddNetworkButton() {
const [status, setStatus] = useState('');
const addNetwork = async () => {
if (typeof window.ethereum !== 'undefined') {
try {
await window.ethereum.request({
method: 'wallet_addEthereumChain',
params: [{
chainId: '{CHAIN_ID_HEX}',
chainName: '{CHAIN_NAME}',
nativeCurrency: {
name: '{CURRENCY_NAME}',
symbol: '{CURRENCY_SYMBOL}',
decimals: 18
},
rpcUrls: ['{RPC_URL}'],
blockExplorerUrls: []
}]
});
setStatus('Network added successfully!');
} catch (error) {
setStatus('Error: ' + error.message);
}
} else {
setStatus('Please install a wallet');
}
};
return (
<div>
<button
onClick={addNetwork}
style={{
backgroundColor: '#0073b7',
color: 'white',
border: 'none',
padding: '12px 24px',
borderRadius: '6px',
fontSize: '16px',
fontWeight: 500,
cursor: 'pointer',
transition: 'background-color 0.2s ease',
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif'
}}
onMouseEnter={(e) => e.target.style.backgroundColor = '#005a8f'}
onMouseLeave={(e) => e.target.style.backgroundColor = '#0073b7'}
>
Add Network to Wallet
</button>
{status && <p style={{ marginTop: '12px', color: status.includes('Error') ? '#d32f2f' : '#2e7d32' }}>{status}</p>}
</div>
);
}