open-index/open-npm huggingface dataset:
npm package: @solflare-wallet/metamask-wallet-standard
Description: MetaMask wallet adapter compatible with [Wallet Standard](https://github.com/wallet-standard/wallet-standard) and [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter)
Author: Solflare Developers
Latest version: 1.0.11

# @solflare-wallet/metamask-wallet-standard

MetaMask wallet adapter compatible with [Wallet Standard](https://github.com/wallet-standard/wallet-standard) and [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter)

## Register the adapter

```javascript
import { initializeWhenDetected } from '@solflare-wallet/metamask-wallet-standard';

initializeWhenDetected();
```
npm package: @solflare-wallet/pfp
Description: ## Description
Author: Solflare Developers
Latest version: 0.1.0

# @solflare-wallet/pfp

## Description

The Solana Profile Picture Protocol allows Solana users to set a single Metaplex-standard NFT as a universal PFP for the Solana blockchain.

Individual Solana protocols can use the documentation below both to show PFPs in their FE, and to provide functionality within their own FE to allow users to set a new PFP.

## Example

```javascript
import { Connection, PublicKey } from '@solana/web3.js';
import { getProfilePicture } from '@solflare-wallet/pfp';

const connection = new Connection('https://api.mainnet-beta.solana.com');
const walletPubkey = new PublicKey('ES8rZr16f5eAc9PkUcAbafwg5JjEJANbpwu92CF2Cbox');

const { isAvailable, url } = await getProfilePicture(connection, walletPubkey);
```

## API

### Get the wallet's profile picture

```javascript
function getProfilePicture (connection: Connection, publicKey: PublicKey, config: ProfilePictureConfig): Promise<ProfilePicture>
```

#### Params
- `connection` - RPC connection object
- `publicKey` - The public key of the wallet
- `config` (optional)
  - `fallback` - Boolean, use a fallback generated image (default `true`)
  - `resize` - Object with Cloudflare image resize params (default `{ width: 100 }`)

#### Return value
Object with the following fields:
- `isAvailable` - Boolean, `true` if there is a profile picture for the given wallet
- `url` - The URL of the profile image, always populated (either a fallback image or an empty-image icon), you can choose to ignore it if `isAvailable` is false
- `name` - NFT name (only if `isAvailable: true`)
- `metadata` - NFT metadata object (only if `isAvailable: true`)
- `tokenAccount` - The public key of the token account that holds the NFT (only if `isAvailable: true`)
- `mintAccount` - The public key of the NFT's mint (only if `isAvailable: true`)

### Transactions for setting an NFT for the profile picture

```javascript
function createSetProfilePictureTransaction (ownerPublicKey: PublicKey, mintPublicKey: PublicKey, tokenAccountPublicKey: PublicKey): Promise<Transaction>
```

#### Params
- `ownerPublicKey` - The public key of the wallet
- `mintPublicKey` - The public key of the NFT's mint
- `tokenAccountPublicKey` - The public key of the token account that holds the NFT

#### Return value
A Web3 Transaction object

### Transaction for removing the profile picture

```javascript
function createRemoveProfilePictureTransaction (ownerPublicKey: PublicKey): Promise<Transaction>
```

#### Params
- `ownerPublicKey` - The public key of the wallet

#### Return value
A Web3 Transaction object
npm package: @solflare-wallet/sdk
Description: ## Example
Author: Solflare Developers
Latest version: 1.4.2

# @solflare-wallet/sdk

## Example

```javascript
import Solflare from '@solflare-wallet/sdk';
import { Transaction } from '@solana/web3.js';

const wallet = new Solflare();

wallet.on('connect', () => console.log('connected', wallet.publicKey.toString()));
wallet.on('disconnect', () => console.log('disconnected'));

try {
  await wallet.connect();

  const signature = await wallet.signAndSendTransaction(new Transaction());

  const transaction = await wallet.signTransaction(new Transaction());

  const transactions = await wallet.signAllTransactions([ new Transaction(), new Transaction() ]);

  const encoder = new TextEncoder();
  const messageBytes = encoder.encode('Test message');
  const messageSignature = await wallet.signMessage(messageBytes, 'utf8');

  await wallet.disconnect();
} catch (err) {
  console.log(err);
}
```

## API

```javascript
class Solflare extends EventEmitter {
  publicKey: PublicKey | null;
  isConnected: boolean;
  connected: boolean; // for SOL Wallet Adapter compatibility
  autoApprove: boolean; // for SOL Wallet Adapter compatibility

  constructor(config: { network?: string });

  connect(): Promise<void>;
  disconnect(): Promise<void>;

  signAndSendTransaction(transaction: TransactionOrVersionedTransaction, options: SendOptions | undefined): Promise<string>;
  signTransaction(transaction: TransactionOrVersionedTransaction): Promise<TransactionOrVersionedTransaction>;
  signAllTransactions(transactions: TransactionOrVersionedTransaction[]): Promise<TransactionOrVersionedTransaction[]>;
  signMessage(data: Uint8Array, display: 'hex' | 'utf8' = 'utf8'): Promise<Uint8Array>;
  sign(data: Uint8Array, display: 'hex' | 'utf8' = 'utf8'): Promise<Uint8Array>; // for SOL Wallet Adapter compatibility
}
```
npm package: @solflare-wallet/wallet-adapter
Description: Solflare wallet adapter compatible with [Wallet Standard](https://github.com/wallet-standard/wallet-standard) and [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter)
Author: Solflare Developers
Latest version: 1.0.4

# @solflare-wallet/wallet-adapter

Solflare wallet adapter compatible with [Wallet Standard](https://github.com/wallet-standard/wallet-standard) and [Solana Wallet Adapter](https://github.com/solana-labs/wallet-adapter)

You can either initialize the standard adapter or add the Solana Wallet Adapter compatible wallet to your list.

## Initialize the standard adapter

```javascript
import { initialize } from '@solflare-wallet/wallet-adapter';

initialize();
```

## Add the adapter to the list of supported wallets

```javascript
import { SolflareWalletAdapter } from '@solflare-wallet/wallet-adapter';

const wallets = useMemo(() => [
  new SolflareWalletAdapter(),
  // ...
], []);

<WalletProvider wallets={wallets} autoConnect>
  <App />
</WalletProvider>
```