메인 콘텐츠로 건너뛰기
Injective는 Ethereum 및 Cosmos 네이티브 지갑을 모두 지원합니다. Metamask, Ledger, Keplr, Leap 등과 같은 인기 지갑을 사용하여 Injective에서 트랜잭션에 서명할 수 있습니다.

Wallet Strategy

이러한 모든 지갑을 기본적으로 지원하는 권장 방법은 우리가 구축한 WalletStrategy 추상화를 사용하는 것입니다. 이 접근 방식을 통해 dApp 사용자가 다양한 지갑에 연결하고 상호작용할 수 있습니다. MsgBroadcaster 추상화와 결합하면 하나의 함수 호출로 트랜잭션에 서명할 수 있습니다. 이것이 Helix, Hub, Explorer 등 모든 제품에서 사용되는 방식이며, dApp에서 이 접근 방식을 사용하는 것을 강력히 권장합니다. 여전히 일부 지갑을 네이티브로 사용하려는 경우(WalletStrategy 클래스 없이), 이 문서에서 Metamask와 Keplr를 통해 Injective에 구축된 dApp에 연결하는 방법의 예시를 제공합니다.

Metamask

Metamask는 Ethereum 네이티브 지갑으로 Injective에 구축된 dApp에 연결하고 상호작용하는 데 사용할 수 있습니다.
  • Metamask에서 Injective 주소 가져오기
import { getInjectiveAddress } from "@injectivelabs/sdk-ts/utils";

const getEthereum = () => {
  if (!window.ethereum) {
    throw new Error("Metamask 확장 프로그램이 설치되지 않았습니다");
  }
  return window.ethereum;
};

const ethereum = getEthereum();
const addresses = await ethereum.request({
  method: "eth_requestAccounts",
}); /** 이것들은 EVM 주소입니다 */

const injectiveAddresses = addresses.map(getInjectiveAddress);
console.log(injectiveAddresses);
  • Metamask를 사용하여 트랜잭션 서명
Metamask를 사용하여 Injective에서 트랜잭션을 준비 + 서명 + 브로드캐스트하는 방법의 예시는 여기에서 찾을 수 있습니다.

Keplr

Keplr은 Cosmos 네이티브 지갑으로 Injective에 구축된 dApp에 연결하고 상호작용하는 데 사용할 수 있습니다.
  • Keplr에서 Injective 주소 가져오기
import { ChainId } from "@injectivelabs/ts-types";

const getKeplr = () => {
  if (!window.keplr) {
    throw new Error("Keplr 확장 프로그램이 설치되지 않았습니다");
  }

  return window.keplr;
};

(async () => {
  const keplr = getKeplr();
  const chainId = ChainId.Mainnet;
  await keplr.enable(chainId);
  const injectiveAddresses = await keplr
    .getOfflineSigner(chainId)
    .getAccounts();

  console.log(injectiveAddresses);
})();
  • Keplr을 사용하여 트랜잭션 서명
Keplr을 사용하여 Injective에서 트랜잭션을 준비 + 서명 + 브로드캐스트하는 방법의 예시는 Cosmos 트랜잭션에서 찾을 수 있습니다.