open-index/open-npm huggingface dataset:
npm package: @lit-protocol/lit-agent-signer
Description: Makes signing transactions and messages with Lit Protocol easy
Latest version: 0.4.0

# Lit Serverside Signer SDK

A lightweight SDK for signing transactions and messages with Lit Protocol. This SDK simplifies the process of creating wallets and signing transactions using Lit's Programmable Key Pairs (PKPs).

This SDK is a wrapper around our [full-featured SDK](https://github.com/lit-protocol/js-sdk) which also supports client-side functionality, decryption, and more.
functionality, decryption, and more.

## Features

- 🔑 Easy wallet creation and management
- ✍️ Transaction and message signing
- 🔒 Secure key management via [Lit Protocol](https://litprotocol.com)
- 🚀 Simple, serverside-focused API
- ⚡ Lightweight and efficient

## Installation

```bash
npm install @lit-protocol/lit-agent-signer
# or
yarn add @lit-protocol/lit-agent-signer
```

## Quick Start

```typescript
import { LitClient } from '@lit-protocol/lit-agent-signer';

// Initialize the client with your Lit auth key
const client = await LitClient.create(process.env.LIT_AUTH_KEY);

// Create a new wallet
const { pkp } = await client.createWallet();
console.log('Wallet created:', pkp);

// Sign a transaction or message
const signedMessage = await client.sign({
  toSign: '0x8111e78458fec7fb123fdfe3c559a1f7ae33bf21bf81d1bad589e9422c648cbd',
});
console.log('Message signed:', signedMessage);
```

## Usage Guide

### Initialization

First, initialize the client with your Lit authentication key:

```typescript
const client = await LitClient.create(authKey);
```

### Wallet Management

Create a new wallet:

```typescript
const { pkp } = await client.createWallet();
```

Get existing wallet:

```typescript
const pkp = client.getPkp();
```

### Signing

Sign a message or transaction:

```typescript
const signedMessage = await client.sign({
  toSign: '0x8111e78458fec7fb123fdfe3c559a1f7ae33bf21bf81d1bad589e9422c648cbd',
});
```

### Execute JavaScript Code

You can also execute JavaScript code using Lit Protocol:

```typescript
const result = await client.executeJs({
  code: `
    Lit.Actions.setResponse({ response: message + " - processed by Lit Protocol" });
  `,
  jsParams: {
    message: 'Hello',
  },
});
```

### Cleanup

When you're done, disconnect the client:

```typescript
await client.disconnect();
```

## Environment Variables

Make sure to set up the following environment variable:

- `LIT_AUTH_KEY`: Your Lit Protocol authentication key

## Examples

Check out the `examples` directory for more detailed examples:

- `basic-usage.ts`: Complete example showing all main features
- `minimal-signing.ts`: Minimal example focused on transaction signing

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

MIT License
npm package: @lit-protocol/lit-auth-client
Description: A comprehensive authentication client for managing PKP (Programmable Key Pair) authentication with Lit Protocol. This package simplifies the integration of various authentication methods including social logins and Ethereum wallet sign-ins.
Latest version: 7.4.0

# Lit Auth Client

A comprehensive authentication client for managing PKP (Programmable Key Pair) authentication with Lit Protocol. This package simplifies the integration of various authentication methods including social logins and Ethereum wallet sign-ins.

## Installation

```bash
yarn add @lit-protocol/lit-auth-client
```

## Quick Start

See the lit-pkp-auth-demo [here](https://github.com/LIT-Protocol/lit-pkp-auth-demo/blob/8f9e301e82e655b28fe9ab767ad3778bfe74701d/src/utils/lit.ts#L75-L85)

## Key Features

- Social login integration
- Ethereum wallet authentication
- PKP minting and management
- Auth method linking
- Secure token handling
- Multiple provider support

## Documentation

For detailed API documentation, visit the [API reference](https://docs.lit-js-sdk-v2.litprotocol.com/modules/lit_auth_client_src.html).
npm package: @lit-protocol/lit-node-client
Description: This module is the main interface for interacting with the Lit Protocol network. It provides a robust client implementation that handles network communication, authentication, and node interactions in both browser and Node.js environments.
Latest version: 7.4.0

# Lit Node Client

This module is the main interface for interacting with the Lit Protocol network. It provides a robust client implementation that handles network communication, authentication, and node interactions in both browser and Node.js environments.

## Installation

```bash
yarn add @lit-protocol/lit-node-client
```

## Quick Start

```typescript
import { LitNodeClient } from '@lit-protocol/lit-node-client';

// Initialize the client
const client = new LitNodeClient({
  litNetwork: 'datil',
});

// Connect to the network
await client.connect();
```

## Key Features

- Seamless authentication with Lit nodes
- Default authentication callback using `checkAndSignAuthMessage`
- Cross-platform support (browser and Node.js)
- Network connection management
- Secure node communication
- Automatic request handling and retries
npm package: @lit-protocol/lit-node-client-nodejs
Description: This package provides a Node.js-specific implementation of the Lit Protocol client, enabling server-side applications to interact with the Lit network. It offers optimized Node.js performance while maintaining all core Lit Protocol functionality, excludin
Latest version: 7.4.0

# Getting Started

This package provides a Node.js-specific implementation of the Lit Protocol client, enabling server-side applications to interact with the Lit network. It offers optimized Node.js performance while maintaining all core Lit Protocol functionality, excluding browser-specific authentication which can be manually added if needed.

```js
import * as LitJsSdkNodeJs from '@lit-protocol/lit-node-client-nodejs';
import { checkAndSignAuthMessage } from '@lit-protocol/auth-browser';

const client = new LitJsSdkNodeJs.LitNodeClientNodeJs({
  litNetwork: 'serrano',
  defaultAuthCallback: checkAndSignAuthMessage,
});

await client.connect();

const authSig = await checkAndSignAuthMessage({
  chain: 'ethereum',
});
```
npm package: @lit-protocol/lit-third-party-libs
Description: ## IPFSBundledSDK ``` import { importer } from "ipfs-unixfs-importer"; import { MemoryBlockstore } from "blockstore-core/memory"; ```
Latest version: 3.1.4

# This repo re-exports funtionalities from

## IPFSBundledSDK
```
import { importer } from "ipfs-unixfs-importer";
import { MemoryBlockstore } from "blockstore-core/memory";
```

<!-- ## CosmosBundledSDK
```
import {
  encodeSecp256k1Signature,
  rawSecp256k1PubkeyToRawAddress,
} from "@cosmjs/amino";
import { Secp256k1, sha256, ExtendedSecp256k1Signature } from "@cosmjs/crypto";
import { toBech32, fromHex } from "@cosmjs/encoding";

import { makeSignBytes } from "@cosmjs/proto-signing";
``` -->
npm package: @lit-protocol/misc
Description: This submodule contains various utility functions for error handling, logging, type checking, and other operations in the JavaScript SDK for the Lit Protocol.
Latest version: 7.4.0

# Quick Start

This submodule contains various utility functions for error handling, logging, type checking, and other operations in the JavaScript SDK for the Lit Protocol.

### node.js / browser

```
yarn add @lit-protocol/misc
```
npm package: @lit-protocol/misc-browser
Description: This submodule includes functions for interaction with local storage (get, set, remove), converting between Blob and base64 string, converting a file to a data URL, downloading a file, and injecting an iFrame for displaying LIT content on the current page
Latest version: 7.4.0

# Quick Start

This submodule includes functions for interaction with local storage (get, set, remove), converting between Blob and base64 string, converting a file to a data URL, downloading a file, and injecting an iFrame for displaying LIT content on the current page, all within the JavaScript SDK for the Lit Protocol.

### node.js / browser

```
yarn add @lit-protocol/misc-browser
```
npm package: @lit-protocol/nacl
Description: This package provides essential cryptographic operations for the Lit Protocol by re-exporting TweetNaCl.js (https://www.npmjs.com/package/nacl). It offers a lightweight implementation of the NaCl (pronounced "salt") cryptography library, enabling secure e
Latest version: 7.4.0

# Quick Start

This package provides essential cryptographic operations for the Lit Protocol by re-exporting TweetNaCl.js (https://www.npmjs.com/package/nacl). It offers a lightweight implementation of the NaCl (pronounced "salt") cryptography library, enabling secure encryption, decryption, and digital signatures across the Lit Protocol ecosystem.

### node.js / browser

```
yarn add @lit-protocol/nacl
```
npm package: @lit-protocol/naga-la-types
Description: Type declarations for Lit Actions globals and namespaces.
Latest version: 0.1.0

# @lit-protocol/naga-la-types

TypeScript declarations for the Lit Actions runtime. Install this package to get autocompletion and type safety for the global `Lit` namespaces (`Lit.Actions`, `Lit.Auth`) and helper globals such as `LitActions`, `LitAuth`, `ethers`, and `jwt`.

## Install

```bash
npm install @lit-protocol/naga-la-types
# or
yarn add @lit-protocol/naga-la-types
```

## Usage

### Import the namespace types

```ts
import type { Lit } from '@lit-protocol/naga-la-types';

async function sign(params: Parameters<typeof Lit.Actions.signEcdsa>[0]) {
  return await Lit.Actions.signEcdsa(params);
}
```

### Register the globals

If your project relies on the Lit runtime globals, reference the package in `tsconfig.json` so the declarations are picked up automatically:

```json
{
  "compilerOptions": {
    "types": ["@lit-protocol/naga-la-types"]
  }
}
```

Alternatively, import the provided ambient module once during setup:

```ts
import '@lit-protocol/naga-la-types/globals';
```

This augments the global scope with `Lit`, `LitActions`, `LitAuth`, `ethers`, and `jwt` type definitions.
npm package: @lit-protocol/pkp-base
Description: A foundational package providing shared wallet functionality for PKP (Programmable Key Pair) signers in the Lit Protocol ecosystem. This package manages public key operations, LIT node connections, and action execution.
Latest version: 7.4.0

# PKP Base

A foundational package providing shared wallet functionality for PKP (Programmable Key Pair) signers in the Lit Protocol ecosystem. This package manages public key operations, LIT node connections, and action execution.

## Installation

```bash
yarn add @lit-protocol/pkp-base
```

## Quick Start

```typescript
import { PKPBase } from '@lit-protocol/pkp-base';

// Initialize PKP Base
const pkpBase = new PKPBase({
  controllerAuthSig: authSig,
  pkpPubKey: publicKey,
});

// Connect to LIT node
await pkpBase.init();

// Run LIT action
const signature = await pkpBase.runLitAction(dataToSign, 'sign');
```

## Key Features

- Public key compression and management
- LIT node connection handling
- Session signature management
- LIT action execution
- Debug logging capabilities

## Core Methods

| Method           | Description                        |
| ---------------- | ---------------------------------- |
| `init()`         | Initialize and connect to LIT node |
| `runLitAction()` | Execute LIT actions                |
| `runSign()`      | Signs a message                    |
npm package: @lit-protocol/pkp-client
Description: This modules `PKPClient` manages multiple wallets for different blockchain networks (e.g., Ethereum and Cosmos) and offers a convenient way to create and interact with these wallets.
Latest version: 6.11.5

# PKP-Client

This modules `PKPClient` manages multiple wallets for different blockchain networks (e.g., Ethereum and Cosmos) and offers a convenient way to create and interact with these wallets.

It provides the functionalities to register supported wallets (\_registerSupportedWallets), retrieve a list of supported chains (getSupportedChains), and access wallets for specific chains (getWallet, getEthWallet, getCosmosWallet, getBtcWallet).

# Getting Started

```
yarn add @lit-protocol/pkp-client
```

# Init

```js
const pkpClient = new PKPClient({
  controllerAuthSig: LITCONFIG.CONTROLLER_AUTHSIG,
  pkpPubKey: PKP_PUBKEY,
  cosmosAddressPrefix: 'cosmos',
});

await pkpClient.connect();

// using a eth wallet
const pkpEthWallet = pkpClient.getEthWallet();

// using a cosmos wallet
const pkpCosmosWallet = pkpClient.getCosmosWallet();

// using a btc wallet (coming soon)
```

More examples here:
https://github.com/LIT-Protocol/js-sdk/blob/master/packages/pkp-client/src/lib/wallet-factory.spec.ts
npm package: @lit-protocol/pkp-cosmos
Description: A specialized wallet implementation for the Cosmos blockchain ecosystem using Lit Protocol's PKP (Programmable Key Pair) technology. Built on top of `@cosmjs/proto-signing`, this package enables secure transaction signing and account management through Li
Latest version: 7.4.0

# PKP Cosmos

A specialized wallet implementation for the Cosmos blockchain ecosystem using Lit Protocol's PKP (Programmable Key Pair) technology. Built on top of `@cosmjs/proto-signing`, this package enables secure transaction signing and account management through Lit nodes.

## Installation

```bash
yarn add @lit-protocol/pkp-cosmos
```

## Quick Start

```typescript
import { PKPCosmosWallet } from '@lit-protocol/pkp-cosmos';

// Initialize wallet
const wallet = new PKPCosmosWallet({
  controllerAuthSig: authSig,
  pkpPubKey: publicKey,
  addressPrefix: 'cosmos',
});

// Get wallet address
const address = await wallet.getAddress();

// Sign transaction
const signedTx = await wallet.signDirect(address, {
  bodyBytes: tx.bodyBytes,
  authInfoBytes: tx.authInfoBytes,
  chainId: chainId,
});
```

## Key Features

- Bech32 address generation
- Account data management
- Transaction signing via LIT nodes
- SigningStargateClient integration
- Customizable RPC endpoints
- Flexible address prefix support

## Core Functionality

- Address Generation: Create Cosmos blockchain addresses
- Transaction Management: Sign and prepare transactions
- Client Integration: Create SigningStargateClient instances
- Account Operations: Manage account data and balances
- Network Configuration: Customize RPC URLs and prefixes
npm package: @lit-protocol/pkp-ethers
Description: A specialized Ethereum wallet implementation using Lit Protocol's PKP (Programmable Key Pair) technology, built as an extension of ethers.js Wallet. This package provides secure transaction signing and account management through Lit nodes without storing 
Latest version: 7.4.0

# PKP Ethers

A specialized Ethereum wallet implementation using Lit Protocol's PKP (Programmable Key Pair) technology, built as an extension of ethers.js Wallet. This package provides secure transaction signing and account management through Lit nodes without storing private keys locally.

## Installation

```bash
yarn add @lit-protocol/pkp-ethers ethers
```

## Quick Start

```typescript
import { PKPEthersWallet } from '@lit-protocol/pkp-ethers';

// Initialize wallet
const wallet = new PKPEthersWallet({
  controllerAuthSig: authSig,
  pkpPubKey: publicKey,
});

// Get wallet address
const address = await wallet.getAddress();

// Sign transaction
const signedTx = await wallet.signTransaction({
  to: recipient,
  value: ethers.utils.parseEther('0.1'),
});
```

## Key Features

- Secure transaction signing via LIT nodes
- Full ethers.js Wallet compatibility
- JSON-RPC request handling
- Balance and nonce management
- Gas estimation support
- Message signing capabilities

## Core Functionality

- Transaction Management: Sign and send transactions
- Account Operations: Get balances and transaction counts
- Message Signing: Sign messages and typed data
- Network Integration: Connect to any EVM network
- Gas Handling: Estimate and manage gas costs

For detailed API documentation, visit:
https://docs.ethers.org/v4/api-wallet.html
npm package: @lit-protocol/pkp-sui
Description: The `PKPSuiWallet` class is a specialized wallet for the SUI blockchain using signing scheme based on ECDSA Secp256k1. It's modified version of `SignerWithProvider` class from the `@mysten/sui.js` library. This class wraps the 'PKPBase' class and implemen
Latest version: 7.4.0

# pkp-sui

The `PKPSuiWallet` class is a specialized wallet for the SUI blockchain using signing scheme based on ECDSA Secp256k1. It's modified version of `SignerWithProvider` class from the `@mysten/sui.js` library. This class wraps the 'PKPBase' class and implements the 'Signer' interface. Unlike `RawSigner` from the `@mysten/sui.js`, `PKPSuiWallet` does not store private keys. Despite these differences, it retains all functionality.

Note: Since LitAction uses WebAssembly, additional settings are required to use it in Chrome extension.

# Getting Started

```
yarn add @lit-protocol/pkp-sui @mysten/sui.js
```

# Examples

## Create a wallet and get the address

```typescript
import { PKPSuiWallet } from '@lit-protocol/pkp-sui';
import { JsonRpcProvider, mainnetConnection } from '@mysten/sui.js';

const pkpSuiWallet = new PKPSuiWallet(
  {
    controllerAuthSig: AuthSig,
    pkpPubKey: PKPPubKey,
  },
  new JsonRpcProvider(mainnetConnection)
);
return await pkpSuiWallet.getAddress();
```

## Change wallet rpc/network

```typescript
import { JsonRpcProvider, testnetConnection, Connection } from '@mysten/sui.js';
// connect to testnet
pkpSuiWallet.connect(new JsonRpcProvider(testnetConnection));
// connect to custom rpcUrl
pkpSuiWallet.connect(new JsonRpcProvider(new Connection({ fullnode: rpcUrl })));
```

## Transfer Sui

```typescript
import { TransactionBlock } from '@mysten/sui.js';

const tx = new TransactionBlock();
const [coin] = tx.splitCoins(tx.gas, [tx.pure(amount)]);
tx.transferObjects([coin], tx.pure(recipient));

return await pkpSuiWallet.signAndExecuteTransactionBlock({
  transactionBlock: tx,
});
```

## Stake Sui

```typescript
import { SUI_SYSTEM_STATE_OBJECT_ID, TransactionBlock } from '@mysten/sui.js';

const tx = new TransactionBlock();
const stakeCoin = tx.splitCoins(tx.gas, [tx.pure(amount)]);
tx.moveCall({
  target: '0x3::sui_system::request_add_stake',
  arguments: [
    tx.object(SUI_SYSTEM_STATE_OBJECT_ID),
    stakeCoin,
    tx.pure(validator),
  ],
});
return await pkpSuiWallet.signAndExecuteTransactionBlock({
  transactionBlock: tx,
});
```

## Get balance

```typescript
const provider = new JsonRpcProvider(mainnetConnection);
const address = await pkpSuiWallet.getAddress();
const balance = await provider.getBalance(address);
```

## Sign message

```typescript
await pkpSuiWallet.signMessage({ message });
```

## Sign transaction

```typescript
await pkpSuiWallet.signTransactionBlock({ transactionBlock });
```

## dryRunTransactionBlock for estimating transaction result

```typescript
await pkpSuiWallet.dryRunTransactionBlock({ transactionBlock });
```

# Running unit tests

Run `nx test pkp-sui` to execute the unit tests via [Jest](https://jestjs.io).
If test 3,4 fail, It means sui testnet has been reset. Use sui testnet faucet to get some sui and try again.
npm package: @lit-protocol/pkp-walletconnect
Description: A WalletConnect integration for Lit Protocol's PKP (Programmable Key Pair) system, enabling secure dApp connections and session management. This package wraps WalletConnect's Web3Wallet to provide seamless PKP integration with decentralized applications.
Latest version: 7.4.0

# PKP WalletConnect

A WalletConnect integration for Lit Protocol's PKP (Programmable Key Pair) system, enabling secure dApp connections and session management. This package wraps WalletConnect's Web3Wallet to provide seamless PKP integration with decentralized applications.

## Installation

```bash
yarn add @lit-protocol/pkp-walletconnect
```

## Quick Start

```typescript
import { PKPWalletConnect } from '@lit-protocol/pkp-walletconnect';

// Initialize WalletConnect client
const client = new PKPWalletConnect();

// Handle session proposals
client.on('session_proposal', async (proposal) => {
  const approved = await client.approveSession(proposal);
});

// Handle session requests
client.on('session_request', async (request) => {
  const response = await client.respondToRequest(request);
});
```

## Key Features

- WalletConnect v2.0 integration
- dApp pairing management
- Session proposal handling
- Request/response management
- Multi-chain support
- Event handling system

## Core Functionality

- Session Management: Handle dApp connections
- Request Processing: Respond to session requests
- Pairing: Manage PKP-dApp pairings
- Event Handling: Subscribe to WalletConnect events
- Chain Configuration: Support multiple blockchains

For detailed API documentation, visit the [API reference](https://docs.lit-js-sdk-v2.litprotocol.com/modules/pkp_walletconnect_src.html).
npm package: @lit-protocol/schemas
Description: This submodule exports zod schemas used for validating Lit Protocol data.
Latest version: 8.0.3

# Quick Start

This submodule exports zod schemas used for validating Lit Protocol data.

# NOTE

This package is not intended to be used directly by Lit SDK consumers. It is used by the Lit SDK internally.

Having said that, this package will not guarantee semver or API stability, and we might deprecate it in the future without notice.

### node.js / browser

```
yarn add @lit-protocol/schemas
```
npm package: @lit-protocol/sdk-browser
Description: Docs for the JS SDK live here: https://developer.litprotocol.com/docs/SDK/intro
Latest version: 1.1.250

This package is simply the browser build of the Lit-JS-SDK. Importing this package is the same as importing the main Lit-JS-SDK package (`import LitJsSdk from 'lit-js-sdk'`) except this package has less extra stuff you don't need.

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

**Table of Contents** _generated with [DocToc](https://github.com/thlorenz/doctoc)_

- [Lit Protocol JS SDK](#lit-protocol-js-sdk)
  - [Support](#support)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Lit Protocol JS SDK

Docs for the JS SDK live here: https://developer.litprotocol.com/docs/SDK/intro

## Support

If you need help, join our discord: https://litgateway.com/discord
npm package: @lit-protocol/sdk-browser-standalone
Description: Docs for the JS SDK live here: https://developer.litprotocol.com/docs/SDK/intro
Latest version: 1.1.250

This package is simply the browser build of the Lit-JS-SDK with all dependencies included. No bundling needed, you can drop this into a script tag on a webpage and it will work.

Importing this package is the same as importing the web Lit-JS-SDK package web build (`import LitJsSdk from 'lit-js-sdk/build/index.web.js'`) except this package has less extra stuff you don't need.

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

**Table of Contents** _generated with [DocToc](https://github.com/thlorenz/doctoc)_

- [Lit Protocol JS SDK](#lit-protocol-js-sdk)
  - [Support](#support)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Lit Protocol JS SDK

Docs for the JS SDK live here: https://developer.litprotocol.com/docs/SDK/intro

## Support

If you need help, join our discord: https://litgateway.com/discord
npm package: @lit-protocol/sdk-nodejs
Description: Docs for the JS SDK live here: https://developer.litprotocol.com/docs/SDK/intro
Latest version: 1.1.250

This package is simply the nodejs build of the Lit-JS-SDK. Importing this package is the same as importing the nodejs Lit-JS-SDK package (`import LitJsSdk from 'lit-js-sdk/build/index.node.js'`) except this package has less extra stuff you don't need.

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

**Table of Contents** _generated with [DocToc](https://github.com/thlorenz/doctoc)_

- [Lit Protocol JS SDK](#lit-protocol-js-sdk)
  - [Support](#support)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Lit Protocol JS SDK

Docs for the JS SDK live here: https://developer.litprotocol.com/docs/SDK/intro

## Support

If you need help, join our discord: https://litgateway.com/discord
npm package: @lit-protocol/sev-snp-utils-sdk
Description: Read more about it here
Latest version: 6.11.5

# BLS-SDK

Read more about it here

https://github.com/LIT-Protocol/sev-snp-utils-wasm

# Installation

```
yarn add @lit-protocol/sev-snp-utils-sdk
```

# Usage

```js
import { initSevSnpUtilsSdk } from '@lit-protocol/sev-snp-utils-sdk';

initSevSnpUtilsSdk().then((exports) => {
  globalThis.wasmExports = exports;
  log(
    `✅ [SEV SNP Utils SDK] wasmExports loaded. ${
      Object.keys(exports).length
    } functions available. Run 'wasmExports' in the console to see them.`
  );
});
```

# Then

```js
// Check an attestation report
let attestationReport = 'someAttestationReportObtainedFromSomewhere';
try {
  await wasmExports.verify_attestation_report(report);
} catch (e) {
  console.error(e);
}
```

The verify_attestation_report() function will throw an error if the attestation report is invalid. Otherwise, it will return undefined.