Solana Wallet Adapter
@wepin/solana-wallet-adapter 는 Solana 블록체인과 상호작용하기 위해 설계된 JavaScript SDK 입니다.
지원 네트워크
solana:mainnet
Solana Mainnet
solana
solana:devnet
Solana Devnet
solana-devnet
설치(Install)
npm install @wepin/solana-wallet-adapteryarn 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 IDappKey<string> 앱 등록 후 할당받은 App Keynetwork<string> optional 위핀이 지원하는 월렛어댑터의 Network Variable 값으로, Solana Mainnet의 경우 "solana" 입니다. Network Variable은 소문자로 입력해야 합니다. 전체 목록은 Wepin Solana Wallet Adapter 지원 네트워크에서 확인하세요. 기본값은 "solana"입니다.attributes<object> optionaldefaultLanguage: 위젯의 기본 설정 언어. 현재 지원하는 언어는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 //연결된 계정의 PublicKeysignMessage
지정된 메시지를 사용자의 계정으로 서명합니다.
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 트랜잭션 객체connectionConnection - Solana 네트워크와 상호작용하는 연결 객체optionsSendTransactinOptions - 트랜잭션 전송 시 필요한 추가 옵션 optionalsigners- 추가 서명이 필요한 계정 배열 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();Last updated
Was this helpful?