> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# svm venue: cropper

> The cropper Solana venue: the declaration and description of each of the 11 exports of @eco-incorp/sauce/svm.

Solana venue integration `cropper`, exported from `@eco-incorp/sauce/svm`.

Generated from the type declarations of `@eco-incorp/sauce`.

### `CROPPER_PROGRAM_ID`

*Variable* · `@eco-incorp/sauce/svm`

Cropper's AMM (Whirlpool-lineage CLMM) program.

```typescript theme={null}
CROPPER_PROGRAM_ID: Address<"H8W3ctz92svYg6mkn1UtGfu2aQr2fnUFHM1RhScEtQDt">
```

### `CROPPER_MIN_SQRT_PRICE`

*Variable* · `@eco-incorp/sauce/svm`

Sentinels the venue's `swap` substitutes when no explicit per-pool limit is
given (NOT exported by the SDK barrel - orca-whirlpool's own
MIN\_SQRT\_PRICE/MAX\_SQRT\_PRICE live in that venue's internal tick-math.ts,
unreachable through the public svm barrel - redeclared here byte-equal;
see the source provenance in the module header above).

```typescript theme={null}
CROPPER_MIN_SQRT_PRICE = 4295048016n
```

### `CROPPER_MAX_SQRT_PRICE`

*Variable* · `@eco-incorp/sauce/svm`

```typescript theme={null}
CROPPER_MAX_SQRT_PRICE = 79226673515401279992447579055n
```

### `CROPPER_MAX_BOUNDARIES`

*Variable* · `@eco-incorp/sauce/svm`

Shipped initialized-tick boundaries per direction - independent of
orca-whirlpool's own WHIRLPOOL\_MAX\_BOUNDARIES by design (see the module
header), kept numerically equal (4) for the same measured per-step CU
economics.

```typescript theme={null}
CROPPER_MAX_BOUNDARIES = 4
```

### `cropper`

*Variable* · `@eco-incorp/sauce/svm`

The Cropper venue: a concentrated-liquidity AMM forked from Orca Whirlpool.

```typescript theme={null}
cropper: {
    slug: string;
    programId: Address<"H8W3ctz92svYg6mkn1UtGfu2aQr2fnUFHM1RhScEtQDt">;
    tokenProgram: Address<"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA">;
    fetchPoolConfig: typeof fetchCropperConfig;
}
```

### `fetchCropperConfig`

*Function* · `@eco-incorp/sauce/svm`

Fetch + gate one Cropper pool (see the header for the gate list) and
freeze both directions' boundary windows. Read-only against the loader.

```typescript theme={null}
export declare function fetchCropperConfig(owned: OwnedAccountLoader, pool: Address): Promise<CropperPoolConfig>;
```

### `CROPPER_POOL_ACCOUNT_SIZE`

*Variable* · `@eco-incorp/sauce/svm`

```typescript theme={null}
CROPPER_POOL_ACCOUNT_SIZE = 653
```

### `CROPPER_TICK_ARRAY_ACCOUNT_SIZE`

*Variable* · `@eco-incorp/sauce/svm`

```typescript theme={null}
CROPPER_TICK_ARRAY_ACCOUNT_SIZE = 9988
```

### `CropperBoundary`

*Interface* · `@eco-incorp/sauce/svm`

```typescript theme={null}
export interface CropperBoundary {
    arrayIndex: number;
    offset: number;
    tick: number;
    sqrtPrice: bigint;
}
```

### `CropperWindow`

*Interface* · `@eco-incorp/sauce/svm`

```typescript theme={null}
export interface CropperWindow {
    tickArrays: [
        Address,
        Address,
        Address
    ];
    startTicks: [
        number,
        number,
        number
    ];
    boundaries: CropperBoundary[];
    edge: {
        tick: number;
        sqrtPrice: bigint;
    } | null;
    readable: number;
}
```

### `CropperPoolConfig`

*Interface* · `@eco-incorp/sauce/svm`

```typescript theme={null}
export interface CropperPoolConfig extends PoolConfig {
    venue: typeof SLUG;
    direction: "aToB" | "bToA";
    tokenMintA: Address;
    tokenMintB: Address;
    tokenVaultA: Address;
    tokenVaultB: Address;
    oracle: Address;
    tickSpacing: number;
    feeRate: number;
    liquidity: bigint;
    sqrtPrice: bigint;
    tickCurrentIndex: number;
    windows: {
        aToB: CropperWindow;
        bToA: CropperWindow;
    };
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.