open-index/open-npm huggingface dataset:
npm package: @oomol/types
Description: public oomol types, contains oocana, render, inputRender types, is used in oomol studio.
Latest version: 0.0.34

# @oomol/types

## @oomol/types/oocana

from block code

```ts
import type { MainFunction } from "@oomol/types/oocana";

type Inputs = {
  input: string;
};

type Outputs = {
  output: string;
};

export const main: MainFunction<Inputs, Outputs> = ({ inputs, context }) => {
  console.log("input", inputs.input);
  return {
    output: "output data",
  };
};
```

## @oomol/types/render

for block render

```ts
import type { NodeRenderer, RenderContext } from "@oomol/types/render";

const renderer: NodeRenderer = {
  setup(dom: HTMLElement, context: RenderContext) {
    return () => {
      // dispose
    };
  },
};

export default renderer;
```

## @oomol/types/inputRender

for input handle section render

```ts
import type { InputRenderer, InputRenderContext } from "@oomol/types/inputRender";

export const prompt: InputRenderer = function setup(dom: HTMLElement, context: InputRenderContext) {
  return () => {
    // dispose
  };
};
```
npm package: @oone-lido-nestjs/constants
Description: NestJS Constants Module for Lido Finance projects. Part of [Lido NestJS Modules](https://github.com/lidofinance/lido-nestjs-modules/#readme)
Latest version: 1.0.0

# Constants Module

NestJS Constants Module for Lido Finance projects.
Part of [Lido NestJS Modules](https://github.com/lidofinance/lido-nestjs-modules/#readme)

## Install

```bash
yarn add @lido-nestjs/constants
```

## Usage

TODO
npm package: @oone-lido-nestjs/contracts
Description: NestJS Contracts Module for Lido Finance projects. Part of [Lido NestJS Modules](https://github.com/lidofinance/lido-nestjs-modules/#readme)
Latest version: 1.0.1

# Contracts Module

NestJS Contracts Module for Lido Finance projects.
Part of [Lido NestJS Modules](https://github.com/lidofinance/lido-nestjs-modules/#readme)

## Install

```bash
yarn add @lido-nestjs/contracts
```

## Usage

### Basic usage

```ts
// Import
import { Module } from '@nestjs/common';
import { LidoContractModule } from '@lido-nestjs/contracts';
import { getDefaultProvider } from '@ethersproject/providers';
import { MyService } from './my.service';

@Module({
  imports: [
    LidoContractModule.forFeature({
      provider: getDefaultProvider('mainnet'),
    }),
  ],
  providers: [MyService],
  exports: [MyService],
})
export class MyModule {}

// Usage
import { LIDO_CONTRACT_TOKEN, Lido } from '@lido-nestjs/contracts';
import { Inject } from '@nestjs/common';

export class MyService {
  constructor(@Inject(LIDO_CONTRACT_TOKEN) private contract: Lido) {}

  async myMethod() {
    return await this.contract.decimals();
  }
}
```

Specify a different address:

```ts
LidoContractModule.forFeature({
  address: '0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84',
});
```

### Global usage

```ts
import { Module } from '@nestjs/common';
import { LidoContractModule } from '@lido-nestjs/contracts';

@Module({
  imports: [LidoContractModule.forRoot()],
})
export class MyModule {}
```

### Async usage

```ts
import { Module } from '@nestjs/common';
import { LidoContractModule } from '@lido-nestjs/contracts';
import { ConfigModule, ConfigService } from './config.service';

@Module({
  imports: [
    LidoContractModule.forRootAsync({
      async useFactory(testService: TestService) {
        return { address: testService.address };
      },
      inject: [TestService],
    }),
  ],
})
export class MyModule {}
```

### Use global provider

```ts
import { Module } from '@nestjs/common';
import { LidoContractModule } from '@lido-nestjs/contracts';
import { ProviderModule } from './provider.service';

@Module({
  imports: [ProviderModule.forRoot(), LidoContractModule.forRoot()],
})
export class MyModule {}
```

## How to add new abi

1. Put ABI into `packages/contracts/abi` folder
2. Set up `packages/contracts/<your name of abi>`: module, contracts
3. Nice to have: add test for ABI: `packages/contracts/test/contracts.spec.ts`
4. Go through install FAQ
5. Enjoy
npm package: @oone-lido-nestjs/registry
Description: NestJS Registry Module for Lido Finance projects. Part of [Lido NestJS Modules](https://github.com/lidofinance/lido-nestjs-modules/#readme)
Latest version: 1.0.1

# Registry Module

NestJS Registry Module for Lido Finance projects.
Part of [Lido NestJS Modules](https://github.com/lidofinance/lido-nestjs-modules/#readme)

## Install

```bash
yarn add @lido-nestjs/registry
```

## Migrations

Database migrations are placed in `./src/migrations/` folder. 

Please DO NOT edit migrations, if you want to change the migration, 
please make another one with the needed database schema transitions.

## Usage

TODO
npm package: @oone-lido-sdk/constants
Description: Constants for Lido Finance projects. Part of [Lido JS SDK](https://github.com/lidofinance/lido-js-sdk/#readme)
Latest version: 1.0.4

# Constants

Constants for Lido Finance projects.
Part of [Lido JS SDK](https://github.com/lidofinance/lido-js-sdk/#readme)

- [Install](#install)
- [Chains](#chains)
  - [Chains enum](#chains-enum)
  - [Array of chains ids](#array-of-chains-ids)
  - [getChainColor](#getchaincolor)
- [Tokens](#tokens)
  - [Lido tokens enum](#lido-tokens-enum)
  - [getTokenAddress](#gettokenaddress)
- [Aggregator](#aggregator)
  - [getAggregatorAddress](#getaggregatoraddress)
- [WithdrawalQueue](#withdrawalqueue)
  - [getWithdrawalQueueAddress](#getWithdrawalQueueAddress)

## Install

```bash
yarn add @oone-lido-sdk/constants
```

## Chains

[Source](src/chains.ts)

### Chains enum

```ts
import { CHAINS } from '@oone-lido-sdk/constants';

console.log(CHAINS.Mainnet, CHAINS.Holesky); // 1, 17000
```

### Array of chains ids

```ts
import { CHAINS_IDS } from '@oone-lido-sdk/constants';

console.log(CHAINS_IDS); // [1, 3, 4, 5, 42]
```

### getChainColor

Color getter by chain id

```ts
import { CHAINS, getChainColor } from '@oone-lido-sdk/constants';

const goerliChainColor = getChainColor(CHAINS.Goerli);
console.log(goerliChainColor); // #3099f2
```

## Tokens

[Source](src/tokens.ts)

### Lido tokens enum

```ts
import { TOKENS } from '@oone-lido-sdk/constants';

console.log(TOKENS.WSTETH); // WSTETH
console.log(TOKENS.STETH); // STETH
console.log(TOKENS.LDO); // LDO
```

### getTokenAddress

Getter for Lido token addresses. Returns a contract address or throws an error if the contract is not deployed in the chain.

```ts
import { CHAINS, TOKENS, getTokenAddress } from '@oone-lido-sdk/constants';

const stethAddress = getTokenAddress(CHAINS.Mainnet, TOKENS.STETH);
console.log(stethAddress); // 0xae7ab96520de3a18e5e111b5eaab095312d7fe84
```

## Aggregator

[Source](src/aggregator.ts)

EACAggregatorProxy https://etherscan.io/address/0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419  
It’s used to get the ETH price

### getAggregatorAddress

```ts
import { CHAINS, getAggregatorAddress } from '@oone-lido-sdk/constants';

const aggregatorAddress = getAggregatorAddress(CHAINS.Mainnet);
console.log(aggregatorAddress); // 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
```

## WithdrawalQueue

WithdrawalQueue contract for LIDO protocol

### getWithdrawalQueueAddress

```ts
import { CHAINS, getWithdrawalQueueAddress } from '@oone-lido-sdk/constants';

const withdrawalQueueAddress = getWithdrawalQueueAddress(CHAINS.Mainnet);
console.log(withdrawalQueueAddress); // 0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1
```
npm package: @oone-lido-sdk/helpers
Description: Helpers for Lido Finance projects. Part of [Lido JS SDK](https://github.com/lidofinance/lido-js-sdk/#readme)
Latest version: 1.0.2

# Helpers

Helpers for Lido Finance projects.
Part of [Lido JS SDK](https://github.com/lidofinance/lido-js-sdk/#readme)

- [Install](#install)
- [Etherscan](#etherscan)
  - [getEtherscanTxLink](#getetherscantxlink)
  - [getEtherscanTokenLink](#getetherscantokenlink)
  - [getEtherscanAddressLink](#getetherscanaddresslink)
- [Open window](#open-window)

## Install

```bash
yarn add @oone-lido-sdk/helpers
```

## Etherscan

A set of functions for generating links to [etherscan](https://etherscan.io/)

### getEtherscanTxLink

```ts
import { getEtherscanTxLink } from '@oone-lido-sdk/helpers';
import { CHAINS } from '@oone-lido-sdk/constants';

const link = getEtherscanTxLink(
  CHAINS.Mainnet,
  '0x0000000000000000000000000000000000000000000000000000000000000000',
);
console.log(link); // https://etherscan.io/tx/0x0000000000000000000000000000000000000000000000000000000000000000
```

### getEtherscanTokenLink

```ts
import { getEtherscanTokenLink } from '@oone-lido-sdk/helpers';
import { CHAINS } from '@oone-lido-sdk/constants';

const link = getEtherscanTokenLink(
  CHAINS.Mainnet,
  '0x0000000000000000000000000000000000000000',
);
console.log(link); // https://etherscan.io/address/0x0000000000000000000000000000000000000000
```

### getEtherscanAddressLink

```ts
import { getEtherscanAddressLink } from '@oone-lido-sdk/helpers';
import { CHAINS } from '@oone-lido-sdk/constants';

const link = getEtherscanAddressLink(
  CHAINS.Mainnet,
  '0x0000000000000000000000000000000000000000',
);
console.log(link); // https://etherscan.io/address/0x0000000000000000000000000000000000000000
```

## Open window

```ts
import { openWindow } from '@oone-lido-sdk/helpers';

openWindow('https://lido.fi');
```
npm package: @oone-reef-knot/connect-wallet-modal
Description: Provides a modal window with buttons for connection with various crypto wallets.
Latest version: 1.2.8

# Connect Wallet Modal

Provides a modal window with buttons for connection with various crypto wallets.

### Custom

You can configure the list of wallets displayed in the modal.
The package provides wallet connection buttons that are meant to be used inside the modal.
You can use them, or you can make your own.

Import the basic WalletsModal component with required wallet connection buttons:
```ts
import { WalletsModal, ConnectMetamask, ConnectWalletConnect } from '@reef-knot/connect-wallet-modal'
```

Use it like this:
```tsx
<WalletsModal
  open={isOpen}
  onClose={handleClose}
  shouldInvertWalletIcon={false} // set to true for the dark color theme
>
  {(commonProps) => (
    <>
      <ConnectMetamask key='Metamask' {...commonProps} />
      <ConnectWalletConnect key='WalletConnect' {...commonProps} />
    </>
  )}
</WalletsModal>
```

### For Ethereum

The package provides the modal variant with the predefined list of wallets, which work with the Ethereum network. 

Import the component:
```ts
import { WalletsModalForEth } from '@reef-knot/connect-wallet-modal'
```

Use it like this:
```tsx
<WalletsModalForEth {...props} />
```

#### How to hide a wallet
You can hide one or several wallet connection buttons from the list of wallets in the modal.  
Use the `hiddenWallets` property like this:
```tsx
<WalletsModalForEth
  hiddenWallets={['Metamask', 'Mathwallet']}
/>
```

Available values are:  
- `'Metamask'`
- `'WalletConnect'`
- `'Ledger'`
- `'Coinbase'`
- `'Trust'`
- `'ImToken'`
- `'Coin98'`
- `'MathWallet'`  

This list will grow with the addition of new wallets. You can see the actual list by looking into the `WalletsModalForEth` component.
npm package: @oone-reef-knot/web3-react
Description: Web3 react helpers for Lido Finance projects.
Latest version: 1.0.6

# Web3 react helpers

Web3 react helpers for Lido Finance projects.

## Provider

To use hooks from `@oone-lido-sdk/web3-react` you need to wrap your app with `ProviderWeb3`. ProviderWeb3 also contains `ProviderSDK` from `@oone-lido-sdk/react`. No need to wrap again.

```tsx
import { CHAINS } from '@oone-lido-sdk/constants';
import { ProviderWeb3 } from '@oone-lido-sdk/web3-react';

const rpc = {
  [CHAINS.Mainnet]: '/rpc/mainnet',
  [CHAINS.Rinkeby]: '/rpc/rinkeby',
};

const supportedChainIds = [CHAINS.Mainnet, CHAINS.Rinkeby];

const Provider = () => {
  return (
    <ProviderWeb3
      defaultChainId={CHAINS.Mainnet}
      supportedChainIds={supportedChainIds}
      rpc={rpc}
    >
      {children}
    </ProviderWeb3>
  );
};
```

## Auto connect

The `ProviderWeb3` contains logic to automatically activate one of the connectors when the application is initialized. It checks the conditions and tries to connect in the following order:

1. To Ledger Live Dapp Browser with `LedgerHQFrameConnector`.
2. To Gnosis Safe with `SafeAppConnector`.
3. To Dapp browser provider with `InjectedConnector`.
4. To a connector saved in Local Storage.

## Connector hooks

Hooks for manually connecting to the user's wallet:

- useConnectorCoinbase
- useConnectorImToken
- useConnectorMetamask
- useConnectorTrust
- useConnectorWalletConnect

They return an object with a `connect` handler if connecting is possible. In MetaMask, Trust and ImToken hooks the `connect` method contains the Deep Linking logic.

```tsx
import {
  useConnectorMetamask,
  useConnectorCoinbase,
} from '@oone-lido-sdk/web3-react';

const Component = () => {
  const metamask = useConnectorMetamask();
  const coinbase = useConnectorCoinbase();

  return (
    <div>
      <button onClick={metamask.connect}>Connect to Metamask</button>;
      <button onClick={coinbase.connect}>Connect to Coinbase</button>;
    </div>
  );
};
```

## useDisconnect

Return an object with a `disconnect` handler if disconnection is possible.

```tsx
import { useDisconnect } from '@oone-lido-sdk/web3-react';

const Component = () => {
  const { disconnect } = useDisconnect();

  return (
    <button onClick={disconnect} disabled={!disconnect}>
      Disconnect
    </button>
  );
};
```

## useSupportedChains

```tsx
import { useSupportedChains } from '@oone-lido-sdk/web3-react';

const Component = () => {
  const { isUnsupported, supportedChains } = useSupportedChains();

  if (isUnsupported) {
    return (
      <div>
        Chain is not supported. Supported chains:{' '}
        {supportedChains.map(({ name }) => name)}
      </div>
    );
  }

  // ...
};
```
npm package: @ooneex/eagle
Description: A powerful and flexible Bun framework designed for building robust API with modern best practices and high performance.
Author: Ooneex
Latest version: 0.0.102

# Eagle Core

A powerful and flexible Bun framework designed for building robust API with
modern best practices and high performance.

## Features

- 🚀 High Performance - Optimized for speed and efficiency
- 🛡️ Secure by Design - Built-in security features and best practices
- 🎯 Modern Architecture - Following SOLID principles and clean code practices
- 🔌 Modular System - Easily extendable with plugins and modules
- 📦 Dependency Injection - Built-in DI container for better code organization
- 🔍 Type Safety - Strict typing for more reliable code
- 📝 Well Documented - Comprehensive documentation and examples
- ✅ Fully Tested - Extensive test coverage
- ⚡ CLI Tools - Powerful command-line interface for development

## Documentation

🔜 Coming soon!

## Quick Start

🔜 Coming soon!

## Contributing

We welcome contributions to Ooneex Eagle Core! Here's how you can help:

### Development Setup

1. Fork and clone the repository
2. [Install Bun](https://bun.sh/docs/installation) if you haven't already
3. Run `bun test` to ensure everything is working
4. Create a new branch for your feature/fix:
   `git checkout -b feature/your-feature-name`
5. Make your changes and commit them using conventional commits
6. Run tests and ensure they pass: `bun test`
7. Push to your fork and submit a pull request
8. Follow the pull request template and provide detailed description
9. Wait for review and address any feedback

### Code Style Guidelines

- Follow deno formatting guidelines
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Keep functions small and focused
- Use proper error handling

### Testing Guidelines

- Write unit tests for all new features
- Use descriptive test names
- Mock external dependencies
- Test edge cases and error scenarios

### Useful Commands

- `bun run test` - Run tests
- `bun run test:watch` - Run tests with watch mode
- `bun run test:coverage` - Run tests with coverage
- `bun run test:coverage:watch` - Run tests with coverage and watch mode
- `bun run fmt` - Format code
- `bun run lint` - Lint code

## Issue Guidelines

When creating issues:

1. Use the issue templates
2. Provide clear reproduction steps
3. Include relevant system information
4. Add labels appropriately
5. Link related issues/PRs
6. Include screenshots if relevant

## Support

- GitHub Issues for bug reports
- Discussions for questions
- Stack Overflow for technical help
- Email support for security issues

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
for details.