> ## 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.

# deployments: Release sets and compiler pairing

> Release sets and compiler pairing: the declaration and description of each of the 8 exports of @eco-incorp/sauce/deployments.

The addresses of the releases this SDK pins, and which engine runs which compiler's output. `v12EngineAddress()`, `v12KitchenAddress()`, `v12RouterAddress()`, `v12SvmEngineProgramId()` and `v12SvmKitchenProgramId()` return deterministic addresses, the same on every chain; a recorded address does not show that a chain has the deployment, so read the chain before relying on it. The addresses are listed on [Deployments](https://docs.eco.com/sauce-sdk/reference/deployments.md).

```typescript theme={null}
import { v12EngineAddress, v12KitchenAddress, v12SvmEngineProgramId } from "@eco-incorp/sauce/deployments";
```

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

### `v12ReleaseSet`

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

The release set for `compiler` (default: this SDK's), or a throw naming the known ones.

```typescript theme={null}
export declare function v12ReleaseSet(compiler?: string): V12ReleaseSet;
```

### `assertEngineRunsCompiler`

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

Throws for an engine that the release sets record only for compilers other than `compiler`
(default: this SDK's), naming the engine that compiler's output runs on. More than one compiler
version can share an engine, so an engine recorded for `compiler` passes even where another set
records it too. An engine no set names passes: there is nothing to check it against.

* @param target `"evm"` for an engine address, `"svm"` for an engine program id.

```typescript theme={null}
export declare function assertEngineRunsCompiler(target: "evm" | "svm", engine: string, compiler?: string): void;
```

### `V12Component`

*Type* · `@eco-incorp/sauce/deployments`

The four independently released v12 components the SDK pins.

```typescript theme={null}
export type V12Component = "v12-evm" | "kitchen-evm" | "v12-svm" | "kitchen-svm";
```

### `V12ReleasePin`

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

One pinned release: its version, the digest of each asset the sync takes from it (`null` until
the release exists), and - for the two engines - the engine's own identity.

```typescript theme={null}
export interface V12ReleasePin {
    readonly version: string;
    readonly assets: Readonly<Record<string, string | null>>;
    readonly engine?: string | null;
}
```

### `V12KitchenEvmPin`

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

The EVM Kitchen's release: the Kitchen proxy and the init-code hash every Pot it mints is
`CREATE2(kitchen, …, potInitCodeHash)` under - `null` until the release says.

```typescript theme={null}
export interface V12KitchenEvmPin extends V12ReleasePin {
    readonly kitchen: string | null;
    readonly potInitCodeHash: string | null;
}
```

### `V12ReleaseSet`

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

One compiler version and the four releases its output pairs with.

```typescript theme={null}
export interface V12ReleaseSet {
    readonly compiler: string;
    readonly "v12-evm": V12ReleasePin & {
        readonly engine: string | null;
    };
    readonly "kitchen-evm": V12KitchenEvmPin;
    readonly "v12-svm": V12ReleasePin & {
        readonly engine: string | null;
    };
    readonly "kitchen-svm": V12ReleasePin;
}
```

### `V12_RELEASE_SETS`

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

Every release set the SDK knows, oldest first.

```typescript theme={null}
V12_RELEASE_SETS: readonly V12ReleaseSet[]
```

### `sdkCompilerVersion`

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

The compiler version this SDK compiles with - the one its pinned engines were synced for.

```typescript theme={null}
sdkCompilerVersion: () => string
```


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