Solana Wallet Adapter

@wepin/solana-wallet-adapter 는 Solana 블록체인과 상호작용하기 위해 설계된 JavaScript SDK 입니다.

지원 네트워크

Chain ID
Network Name
Network Variable

solana:mainnet

Solana Mainnet

solana

solana:devnet

Solana Devnet

solana-devnet

설치(Install)

npm install @wepin/solana-wallet-adapter

설치가 완료되면 앱 등록 후 할당받은 App ID와 App Key를 사용하여 아래와 같이 WepinProvider 인스턴스를 초기화합니다. 이렇게 하면 WepinProvider 를 사용할 수 있게 됩니다.

// 1. 패키지 import
import { WepinSolanaWalletAdapter } from "@wepin/solana-wallet-adapter";


// 2. 초기화
const wepinSolanaWalletAdapter = new WepinSolanaWalletAdapter({
    appId: 'your-wepin-app-id',
    appKey: 'your-wepin-app-key',
    network: 'solana',
    attributes: {
        defaultCurrency: 'KRW', 
        defaultLanguage: 'ko'
    }
})
//@solana/wallet-adapter-react 와 함께 사용하시는 경우
const wallets = useMemo(
    () => [
      new WepinSolanaWalletAdapter({
        appId: 'your-wepin-app-id',
        appKey: 'your-wepin-app-key',
        network: 'solana',
        attributes: {
            defaultCurrency: 'KRW', 
            defaultLanguage: 'ko'
        }
      })
    ],
    []
  );

Parameters

  • WepinWalletAdapterConfig <Object>

    • appId <string> 앱 등록 후 할당받은 App ID

    • appKey <string> 앱 등록 후 할당받은 App Key

    • network <string> optional 위핀이 지원하는 월렛어댑터의 Network Variable 값으로, Solana Mainnet의 경우 "solana" 입니다. Network Variable은 소문자로 입력해야 합니다. 전체 목록은 Wepin Solana Wallet Adapter 지원 네트워크에서 확인하세요. 기본값은 "solana"입니다.

    • attributes <object> optional

      • defaultLanguage: 위젯의 기본 설정 언어. 현재 지원하는 언어는 en, ko , ja입니다. 기본값은 en 입니다.

      • defaultCurrency: 위젯의 기본 통화 설정. 현재 지원하는 통화는 USD, KRW, JPY 입니다. 기본값은 USD 입니다.

메소드(Method)

Wepin Solana Wallet Provider 에서 사용할 수 있는 메소드는 다음과 같습니다.

connect

Wepin Wallet 과 연결하고 사용자의 Public Key 를 가져옵니다.

parameters

  • <void>

Return Value

Promise<void>

  • 연결 성공 시, Wallet Adapter의 connected 값이 true 로 설정되고, publicKey 속성에 사용자의 Public Key 가 설정됩니다.

Example

await walletSolanaWalletAdapter.connect()
const isConnected = walletSolanaWalletAdapter.connected    //연결 여부 확인
const publicKey = walletSolanaWalletAdapter.publicKey        //연결된 계정의 PublicKey

signMessage

지정된 메시지를 사용자의 계정으로 서명합니다.

parameters

  • message <Uint8Array> 서명할 메세지

Return Value

  • Promise<Uint8Array> 서명된 메시지

Example

const message = new TextEncoder().encode('Hello, Solana!');
const signedMessage = await wepinSolanaWalletAdapter.signMessage(message);
console.log(`Signed message as Uint8Array:`, signedMessage);

signTransaction

Solana 트랜젝션 객체를 입력받아 서명합니다.

parameters

  • <Transaction | VersionedTransaction> 서명할 Solana 트랜젝션 객체

Return Value

  • Promise<Transaction | VersionedTransaction> 서명이 포함된 트랜젝션 객

Example

import { Transaction, SystemProgram, PublicKey } from '@solana/web3.js';

const publicKey = wepinSolanaWalletAdapter.publicKey
// 트랜잭션 생성
const transaction = new Transaction().add(
  SystemProgram.transfer({
    fromPubkey: publicKey,
    toPubkey: new PublicKey('recipient-public-key'),
    lamports: 1000000,
  }),
);

// 최근 블록해시와 feePayer 설정
transaction.recentBlockhash = 'recent-blockhash';
transaction.feePayer = publicKey;

// 트랜잭션 서명
const signedTransaction = await wepinSolanaWalletAdapter.signTransaction(transaction);

console.log('Signed Transaction:', signedTransaction);

disconnect

Wepin Wallet 연결을 해제합니다.

parameters

  • <void>

Return Value

  • Promise<void>

Example

await wepinWallet.disconnect();

Last updated