WEPIN Developer Documentation
WepinBlogContact
한국어
한국어
  • 시작하기
    • 소개
  • 위핀
    • 특징
    • 아키텍처
      • 키 생성
      • 서명
      • 키 백업
    • 워크스페이스
      • 앱 등록 및 키 발급
      • 네트워크 및 자산 추가
      • 위젯 디자인
    • 지원 블록체인
    • 계정 추상화
  • 로그인
    • 개요
    • 소셜 로그인 인증 프로바이더
      • Email/Password
      • Google
      • Apple
      • Discord
      • Naver
      • Facebook
      • Line
      • Kakao
    • 사용자 인터페이스
    • 로그인 일원화
    • 리소스
  • 위젯 연동
    • 사전 준비
    • Web: JavaScript SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 프로바이더
        • Ethereum Provider
        • Kaia Provider
        • Solana Provider
        • Wagmi Connector
      • 월렛 어댑터
        • Solana Wallet Adapter
    • Android: Java & Kotlin SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
    • iOS: Swift SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
    • Flutter SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
    • React Native SDK
      • 로그인
        • 설치
        • 초기화
        • 메서드
    • Unity SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • Compose Multiplatform SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
  • API
    • 개요
    • 등록 절차
    • 로그인
    • 지갑 생성 및 관리
    • 토큰 및 NFT 조회
    • 트랜잭션
  • Deprecated
    • Web: JavaScript SDK
      • SDK
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 프로바이더
        • Ethereum Provider
      • Wagmi Connector
    • Android: Java & Kotlin SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • iOS: Swift SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • Flutter SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • React Native SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
      • 프로바이더
        • EVM 호환
  • 기타
    • 로고 & 브랜드 가이드라인
Powered by GitBook
On this page
  • 지원 네트워크
  • 설치(Install)
  • Parameters
  • 메소드(Method)
  • connect
  • signMessage
  • signTransaction
  • sendTransaction
  • signAllTransactions
  • disconnect

Was this helpful?

  1. 위젯 연동
  2. Web: JavaScript SDK
  3. 월렛 어댑터

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
yarn add @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

    • 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 <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);

sendTransaction

Solana 트랜잭션 객체를 입력 받아 서명하고 전송합니다.

parameters

  • transaction <Transaction | VersionedTransaction> - 서명 및 전송할 Solana 트랜잭션 객체

  • connection Connection - Solana 네트워크와 상호작용하는 연결 객체

  • options SendTransactinOptions - 트랜잭션 전송 시 필요한 추가 옵션 optional

    • signers - 추가 서명이 필요한 계정 배열 optional

Return Value

  • Promise<TransactionSignature> - 성공적으로 전송된 트랜잭션의 고유 서명(signature) 을 반환합니다.

Example

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

const connection = new Connection(umi.rpc.getEndpoint(), 'finalized')
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 signature = await wepinSolanaWalletAdapter.sendTransaction(transaction, connection, {});

console.log('Signature:', signature );

signAllTransactions

여러개의 Solana 트랜잭션 객체를 입력 받아 서명합니다.

parameters

  • Array<Transaction | VersionedTransaction> 서명할 Solana 트랜잭션 객체 배열

Return Value

  • Promise<Array<Transaction | VersionedTransaction>> 서명이 포함된 트랜잭션 객체 배열

Example

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

// 트랜잭션 서명
const signedTransactions = await wepinSolanaWalletAdapter.signAllTransactions(transactions);

console.log('Signed Transactions:', signedTransactions);

disconnect

Wepin Wallet 연결을 해제합니다.

parameters

  • <void>

Return Value

  • Promise<void>

Example

await wepinWallet.disconnect();
Previous월렛 어댑터NextAndroid: Java & Kotlin SDK

Last updated 4 months ago

Was this helpful?

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

signAllTransactions을 이용하기 위해서는 사전에 사용 등록이 필요합니다. Wepin에 해주세요. 한번에 sign 할 수 있는 Transaction 개수는 최대 10개 입니다.

문의
Wepin Solana Wallet Adapter 지원 네트워크