Solana Wallet Adapter
@wepin/solana-wallet-adapter is designed to interact with the Solana blockchain, providing an easy-to-use Wallet Adapter based on @solana/wallet-adapter-base.
Install
npm install @wepin/solana-wallet-adapterOnce the installation is complete, initialize the WepinSolanaWalletAdapter instance using the app ID and app key assigned after registering the app. This will enable the use of WepinSolanaWalletAdapter.
// 1. Package import
import { WepinSolanaWalletAdapter } from "@wepin/solana-wallet-adapter";
// 2. Initialize
const wepinSolanaWalletAdapter = new WepinSolanaWalletAdapter({
appId: 'your-wepin-app-id',
appKey: 'your-wepin-app-key',
network: 'solana',
attributes: {
defaultCurrency: 'KRW',
defaultLanguage: 'ko'
}
})If you're using @solana/wallet-adapter-react, initialize the adapter as shown below:
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>
WepinWalletAdapterConfig <Object>appId <string> The App ID assigned after application registration.
appKey<string> The App Key assigned after application registration.network<string> (optional) The network variable for the supported wallet adapter. For Solana Mainnet, use"solana". Must be entered in lowercase. Default is"solana".attributes<object> (optional)defaultLanguage: Sets the widget's default language. Supported languages areen,ko, andja. Default isen.defaultCurrency: Sets the widget's default currency. Supported currencies areUSD,KRW, andJPY. Default isUSD.
Methods
The following methods are available in the WepinSolanaWalletAdapter.
connect
Connects to the Wepin Wallet and retrieves the user's Public Key.
parameters
<void>
Return Value
Promise<void>
On successful connection, the adapter's
connectedproperty will be set totrue, and thepublicKeyproperty will hold the user's Public Key.
Example
await walletSolanaWalletAdapter.connect()
const isConnected = walletSolanaWalletAdapter.connected // Check connection status
const publicKey = walletSolanaWalletAdapter.publicKey // Get connected account's Public KeysignMessage
Signs a given message using the user's private key.
parameters
message
<Uint8Array>The message to sign.
Return Value
Promise<Uint8Array>The signed message as aUint8Array.
Example
const message = new TextEncoder().encode('Hello, Solana!');
const signedMessage = await wepinSolanaWalletAdapter.signMessage(message);
console.log(`Signed message as Uint8Array:`, signedMessage);signTransaction
Signs a Solana transaction object.
parameters
<Transaction | VersionedTransaction>The Solana transaction object to sign.
Return Value
Promise<Transaction | VersionedTransaction>The signed transaction object.
Example
import { Transaction, SystemProgram, PublicKey } from '@solana/web3.js';
const publicKey = wepinSolanaWalletAdapter.publicKey
// Create a transaction
const transaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: publicKey,
toPubkey: new PublicKey('recipient-public-key'),
lamports: 1000000,
}),
);
// Set recent blockhash and feePayer
transaction.recentBlockhash = 'recent-blockhash';
transaction.feePayer = publicKey;
// Sign the transaction
const signedTransaction = await wepinSolanaWalletAdapter.signTransaction(transaction);
console.log('Signed Transaction:', signedTransaction);
sendTransaction
The sendTransaction method accepts a Solana transaction object, signs it, and sends it to the network.
parameters
transaction<Transaction | VersionedTransaction> - The Solana transaction object to sign and send.connectionConnection -The connection object that interacts with the Solana network.optionsSendTransactinOptions - Additional options required when sending the transaction. optionalsigners- An array of accounts that require additional signatures. optional
Return Value
Promise<TransactionSignature>- Returns the unique signature of the successfully sent transaction.
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,
}),
);
//set blockhash and fee payer
transaction.recentBlockhash = 'recent-blockhash';
transaction.feePayer = publicKey;
// transaction sign and send
const signature = await wepinSolanaWalletAdapter.sendTransaction(transaction, connection, {});
console.log('Signature:', signature );
signAllTransactions
The signAllTransactions method accepts multiple Solana transaction objects and signs them.
parameters
Array<Transaction | VersionedTransaction>An array of Solana transaction objects to sign.
Return Value
Promise<Array<Transaction | VersionedTransaction>>Returns an array of transaction objects with signatures included.
Example
import { Transaction, SystemProgram, PublicKey } from '@solana/web3.js';
// sign transactions
const signedTransactions = await wepinSolanaWalletAdapter.signAllTransactions(transactions);
console.log('Signed Transactions:', signedTransactions);
disconnect
Disconnects from the Wepin Wallet.
parameters
<void>
Return Value
Promise<void>
Example
await wepinWallet.disconnect();Last updated
Was this helpful?