메인 콘텐츠로 건너뛰기

dApp에 Injective 추가

사용자가 한 번의 클릭으로 Injective 네트워크에 연결할 수 있게 하세요. 아래 코드 스니펫을 사용하여 dApp에 “Add Injective Network” 버튼을 추가하면 사용자가 MetaMask 또는 EVM 호환 지갑에 Injective를 쉽게 추가할 수 있습니다.
  1. 스니펫을 프론트엔드 코드베이스에 복사하여 붙여넣습니다.
  2. addInjectiveNetwork 함수를 원하는 UI 버튼에 연결합니다.
  3. 완료 - 이제 사용자가 몇 초 만에 지갑에 Injective를 추가할 수 있습니다
// 네트워크 구성
const INJECTIVE_MAINNET_CONFIG = {
  chainId: '0x6f0', // 10진수로 1776
  chainName: 'Injective',
  rpcUrls: ['https://evm-rpc.injective.network'],
  nativeCurrency: {
    name: 'Injective',
    symbol: 'INJ',
    decimals: 18
  },
  blockExplorerUrls: ['https://explorer.injective.network']
};

async function addInjectiveNetwork() {
  // MetaMask 또는 다른 Web3 지갑이 설치되어 있는지 확인
  if (!window.ethereum) {
    alert('MetaMask 또는 다른 Web3 지갑을 설치해 주세요!');
    return;
  }

  try {
    // 먼저 Injective 네트워크로 전환 시도
    await window.ethereum.request({
      method: 'wallet_switchEthereumChain',
      params: [{ chainId: INJECTIVE_MAINNET_CONFIG.chainId }],
    });

    console.log('Injective 네트워크로 전환 성공!');
  } catch (switchError) {
    // 오류 코드 4902는 네트워크가 아직 추가되지 않았음을 의미
    if (switchError.code === 4902) {
      try {
        // Injective 네트워크 추가
        await window.ethereum.request({
          method: 'wallet_addEthereumChain',
          params: [INJECTIVE_MAINNET_CONFIG],
        });

        console.log('Injective 네트워크 추가 성공!');
      } catch (addError) {
        console.error('Injective 네트워크 추가 실패:', addError);
        alert('Injective 네트워크 추가 실패. 다시 시도해 주세요.');
      }
    } else {
      console.error('네트워크 전환 실패:', switchError);
      alert('Injective 네트워크로 전환 실패.');
    }
  }
}