open-index/open-npm huggingface dataset:
npm package: @summitk12/sfk-ui
Description: A collection of reusable UI components for Spanish for Kids applications.
Author: spanishforkids.com
Latest version: 0.0.18

# @summitk12/sfk-ui

[![npm version](https://img.shields.io/npm/v/@summitk12/sfk-ui.svg)](https://www.npmjs.com/package/@summitk12/sfk-ui)
[![License](https://img.shields.io/npm/l/@summitk12/sfk-ui.svg)](https://www.npmjs.com/package/@summitk12/sfk-ui)

A collection of reusable UI components for Spanish for Kids applications.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Components](#components)
- [Contributing](#contributing)
- [License](#license)

## Installation

You can install the package via npm or yarn.

### npm

```bash
npm install @summitk12/sfk-ui
```

### yarn

```bash
yarn add @summitk12/sfk-ui
```

## Usage

Here's a basic example of how to use a component from the `@summitk12/sfk-ui` package:

```jsx
import React from 'react'
import { Button } from '@summitk12/sfk-ui'

const App = () => (
  <div>
    <Button label="Click me" onClick={() => alert('Button clicked!')} />
  </div>
)

export default App
```

## License

This project is licensed under a proprietary license. Unauthorized copying, modification, or distribution of the code and any associated documentation is strictly prohibited.

```

```
npm package: @summitx/multicall
Description: Enhanced multicall sdk to safely make multicalls within the gas limit.
Latest version: 4.1.1

# SummitX Multicall

Enhanced multicall sdk to safely make multicalls within the gas limit.

Inspired by the [1inch multicall](https://github.com/1inch/multicall).

## Install

```bash
$ pnpm add @summitx/multicall @summitx/sdk viem
```

## Usage

### Basic usage

By default the calls will be splitted into chunks based on gas limit of each call and the rpc call gas limit of the chain

```typescript
import { ChainId } from "@summitx/chains";
import { multicallByGasLimit, MulticallRequestWithGas } from "@summitx/multicall";

const calls: MulticallRequestWithGas[] = [
  {
    // Target contract to call
    target: "0x",
    // Encoded call data
    callData: "",
    // The maximum gas limit set to this single call
    gasLimit: 1_000_000,
  },
];

const { results, blockNumber } = await multicallByGasLimit(calls, {
  chainId: ChainId.CAMP,

  // Rpc client. Please refer to `PublicClient` from viem
  client,
});

for (const { success, result, gasUsed } of results) {
  if (success) {
    // Decode result
    decodeResult(result);
  }
}
```

### Advanced usage

The rpc call gas limit can be overriden if provided. Once provided, the multicall sdk won't ask for the gas limit from on chain.

```typescript
const { results, blockNumber } = await multicallByGasLimit(calls, {
  chainId: ChainId.CAMP,
  client,
  gasLimit: 150_000_000,
});
```

## Other utilities

### Get multicall gas limit

```typescript
import { ChainId } from "@summitx/chains";
import { getGasLimitOnChain } from "@summitx/multicall";

// Get the rpc call gas limit of the specified chain
const gasLimit = await getGasLimitOnChain(ChainId.CAMP);
```

## Supported chains

For supported chains and contract addresses, please refer to [multicall contracts](https://github.com/summitx/summit-frontend/blob/develop/packages/multicall/src/constants/contracts.ts).