> For the complete documentation index, see [llms.txt](https://gl-docs.gitbook.io/zkpass/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gl-docs.gitbook.io/zkpass/zkpass-developers-guide/api-reference/typescript/functions/functions-ffihelper.md).

# Functions: ffiHelper

### Table of contents

#### Functions

* [transformPublicKeyOrKeysetToFfi](#transformpublickeyorkeysettoffi)
* [transformDvrDataToFfi](#transformdvrdatatoffi)
* [transformExpectedDvrMetadataToFfi](#transformexpecteddvrmetadatatoffi)

### Functions

#### transformPublicKeyOrKeysetToFfi

▸ `transformPublicKeyOrKeysetToFfi`(`value`: [`PublicKeyOrKeysetEndpoint`](/zkpass/zkpass-developers-guide/api-reference/typescript/type-aliases/types.md#publickeyorkeysetendpoint)): `object`

**Parameters**

| Name    | Type                                                                                                                                    | Description            |
| ------- | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
| `value` | [`PublicKeyOrKeysetEndpoint`](/zkpass/zkpass-developers-guide/api-reference/typescript/type-aliases/types.md#publickeyorkeysetendpoint) | The value to transform |

**Returns**

`object` - The FFI equivalent of the provided PublicKeyOrKeysetEndpoint

**Throws**

* Error if PublicKeyOrKeysetEndpoint is missing required fields
* Error if PublicKeyOrKeysetEndpoint has an invalid type

***

#### transformDvrDataToFfi

▸ `transformDvrDataToFfi`(`data`: [`DvrData`](/zkpass/zkpass-developers-guide/api-reference/typescript/interfaces/interfaces.md#dvrdata)): `object`

**Parameters**

| Name   | Type                                                                                                   | Description               |
| ------ | ------------------------------------------------------------------------------------------------------ | ------------------------- |
| `data` | [`DvrData`](/zkpass/zkpass-developers-guide/api-reference/typescript/interfaces/interfaces.md#dvrdata) | The DVR data to transform |

**Returns**

`object` - A new instance of DvrDataFfi containing the transformed data

**Throws**

* Error if user\_data\_requests is empty

***

#### transformExpectedDvrMetadataToFfi

▸ `transformExpectedDvrMetadataToFfi`(`metadata`: [`ExpectedDvrMetadata`](/zkpass/zkpass-developers-guide/api-reference/typescript/interfaces/interfaces.md#expecteddvrmetadata)): `object`

**Parameters**

| Name       | Type                                                                                                                           | Description               |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------- |
| `metadata` | [`ExpectedDvrMetadata`](/zkpass/zkpass-developers-guide/api-reference/typescript/interfaces/interfaces.md#expecteddvrmetadata) | The metadata to transform |

**Returns**

`object` - An FFI equivalent of the input metadata

**Throws**

* Error if metadata.user\_data\_verifying\_keys is empty
