# bulkQuote

## Installation

```bash
npm install @karrotcapital/spiderswap
```

## Usage

### Initialization

First, initialize the **`'Spiderswap'`** class with your API key.

```javascript
import Spiderswap from '@karrotcapital/spiderswap';
// OR
const Spiderswap = require('@karrotcapital/spiderswap');

const spiderswap = new Spiderswap(ApiKey);
```

### Method: bulkQuote

**Description**

The **`'bulkQuote'`** method retrieves multiple quotes for a token swap from different liquidity providers. This function is useful for comparing quotes from various providers to find the best rates for a token swap on the Solana blockchain.

**IMPORTANT:** For every provider you use it will make a api call.&#x20;

**Parameters**

* **`'fromMint'`** (string): The mint address of the token being swapped from.
* **`'toMint'`** (string): The mint address of the token being swapped to.
* **`'amount'`** (number): The amount of the **`'fromMint'`** token to swap, in lamports.
* **`'slippage'`** (number): The acceptable slippage percentage for the swap, in basis points (bps).
* **`'providers'`** (Array): An array of liquidity providers.
* **`'fromMintDecimals'`**(number, optional): The decimal places for the **`'fromMint'`** token (default is 9).
* **`'toMintDecimals'`**(number, optional): The decimal places for the **`'toMint'`** token (default is 9).

#### Returns

**`'Promise<Array<bulkQuoteResponseMap>>'`**: A promise that resolves to an array of **`'bulkQuoteResponseMap'`** objects, each containing a provider and its corresponding quote.

#### `'`**`bulkQuoteResponseMap`**`'` Type

```typescript
export type bulkQuoteResponseMap = {
    provider: string;
    quote: quoteResponseMap;
}
```

#### Example

```javascript
async function getBulkQuotes() {
    let providers = [
        "orca",
        "raydium",
        "meteora",
        "meteora-dlmm"
    ];
    
    try {
        const quotes = await spiderswap.quote.bulkQuote(
            'fromMintAddress',
            'toMintAddress',
            1,         // Amount in tokens
            0.5,       // Slippage percentage
            providers,
            9,         // fromMintDecimals
            9          // toMintDecimals
        );
        console.log('Bulk quotes:', quotes);
    } catch (error) {
        console.error('Error fetching bulk quotes:', error);
    }
}

getBulkQuotes();
```

**Implementation Details**

This method iterates through the provided list of liquidity providers, fetching a quote for each using the **`'getQuote'`** method, and then compiles these quotes into an array of **`'bulkQuoteResponseMap'`** objects
