open-index/open-npm huggingface dataset:
npm package: @sovrano-io/branding
Description: Branding resources for Sovrano, including logos, fonts, and color palette.
Author: sovrano.io
Latest version: 1.0.6

# Sovrano Branding and Guidelines

## Palette

### HEX
```
--black: #000000;
--platinum: #e6e6e6;
--white: #ffffffff;
--oxford-blue: #041f4a;
--risd-blue: #1f44ff;
```

### HSLA
```
--black: hsla(0, 0%, 0%, 1);
--platinum: hsla(0, 0%, 90%, 1);
--white: hsla(0, 0%, 100%, 1);
--oxford-blue: hsla(217, 90%, 15%, 1);
--risd-blue: hsla(230, 100%, 56%, 1);
```

### RGBa
```
$black: rgba(0, 0, 0, 1);
$platinum: rgba(230, 230, 230, 1);
$white: rgba(255, 255, 255, 1);
$oxford-blue: rgba(4, 31, 74, 1);
$risd-blue: rgba(31, 68, 255, 1);
```
npm package: @sovrin/docker-api-proxy
Description: safely proxy http requests to docker fd socket via nodejs
Author: Oleg Kamlowski
Latest version: 1.1.0

# docker-api-proxy

> safely proxy http requests to docker fd socket via nodejs

## Installation

```npm
npm i sovrin@docker-api-proxy -g
```

## About
docker-api-proxy forwards all http requests by a single randomly generated endpoint to the docker daemon. This allows communication with the outside world (e.g. for Portainer) provided the client knows the complete url.

## Usage

```bash
$ dap -h
```

## Options
- `-i`: whitelist ips (delimited by ;)
- `-e`: set custom endpoint
- `-s`: set custom socket path (default: on windows: `//./pipe/docker_engine` | on unix: `/var/run/docker.sock`)
- `-p`: set port (default: `3000`)
- `-g`: generate new endpoint
- `-h`: print out cli options

> Note: If using a custom endpoint, its highly recommended to use a long and not so easy to guess endpoint. Obviously only URL safe characters are allowed. 

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License
[MIT](https://choosealicense.com/licenses/mit/)
npm package: @sovrin/tiny-ipc
Description: minimal library for communication between nodejs processes
Author: Oleg Kamlowski
Latest version: 2.2.1

<h1 align="left">Tiny IPC - Inter Process Communicator</h1>

minimal library for communication between nodejs processes

***

## Installation

```bash
$ npm i @sovrin/tiny-ipc
```

## Examples
Server side:
```js
const ipc = require('@sovrin/tiny-ipc');

const {listen} = ipc({
    path: '/tmp/tinyipc.sock',
    //host: '127.0.0.1',
    //port: '1337',
});

// start listening to path or host and port configuration
// returns the instance of net.Server
listen((server) => console.info(server.address()))
    // fires, if a client has connected
    .on('connect', (client) => {
        // reply to this specific client
        client.emit('/baz', 'car');
    })
    
    // on custom client 'foo' event 
    .on('foo', (data, cid) => {
        console.info(`server got "${data}" from client: ${cid}`);
    })
    
    // on predefined 'error' event
    .on('error', (err) => {
        console.error(err);
    })

     // emit sends payload to all connected clients
     .emit('announcement', 'hello y\'all')
;
```

Client side:
```js
const ipc = require('@sovrin/tiny-ipc');

const {connect} = ipc({
    path: '/tmp/tinyipc.sock',
    //host: '127.0.0.1',
    //port: '1337',
});

// connects to path or host and port configuration
// returns the instance of net.Socket
connect((socket) => console.info(socket))
    .on('baz', (data) => {
        console.info(`client got "${data}" from server`);
    })
    
    // emit event 'foo' with 'clown' as payload to server 
    .emit('foo', 'clown')
    
    // some custom event
    .on('announcement', (data) => {
        console.info(`server has an announcement: ${data}`);
    })
    
    // on predefined 'error' event
    .on('error', (err) => {
        console.error(err);
    })
    
    // this closes the connection and, thus, finishes the execution
    // omit this, if client has to emit data on a later point of time
    .close()
;
```
npm package: @sovryn-zero/lib-base
Description: Sovryn Zero SDK shared interfaces
Author: Sovryn
Latest version: 0.2.2

# @sovryn-zero/lib-base  

[![GitHub license](https://img.shields.io/github/license/DistributedCollective/zero)](/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/DistributedCollective/zero)](https://github.com/DistributedCollective/zero/stargazers)
[![Zero README](https://img.shields.io/badge/readme-gray?style=flat&logo=ZeroMQ&logoColor=green&link=/README.md)](/README.md)  

Shared interfaces and classes of Zero SDK.

## Quickstart

### Installation:

  ```shell 
  npm install @sovryn-zero/lib-base
  ```

This packiage is a dependency for other Zero SDK packages like [@sovryn-zero/lib-ethers](https://www.npmjs.com/package/@sovryn-zero/lib-ethers).

## API

[API Reference](https://github.com/DistributedCollective/zero/blob/master/docs/sdk/lib-base.md)
npm package: @sovryn-zero/lib-ethers
Description: Sovryn Zero SDK Ethers-based implementation
Author: Sovryn
Latest version: 0.2.6-early.access.1

# @sovryn-zero/lib-ethers  

[![GitHub license](https://img.shields.io/github/license/DistributedCollective/zero)](/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/DistributedCollective/zero)](https://github.com/DistributedCollective/zero/stargazers)
[![Zero README](https://img.shields.io/badge/readme-gray?style=flat&logo=ZeroMQ&logoColor=green&link=/README.md)](/README.md)  

[Ethers](https://www.npmjs.com/package/ethers)-based library for reading Zero protocol state and sending transactions.

## Quickstart

### Install in your project:

  ```
  npm install @sovryn-zero/lib-base @sovryn-zero/lib-ethers ethers@^5.0.0
  ```  

  To install early access releases (pre-releases) - use a specific version to install:  

  ```
  npm install @sovryn-zero/lib-ethers@1.0.0-early.access.0
  ```  

  The actual early access release version is [here](https://github.com/DistributedCollective/zero/blob/sdk-publish/packages/lib-ethers/package.json#L3).  


### Connecting to an Ethereum node and sending a transaction:

```javascript
const { Wallet, providers } = require("ethers");
const { EthersLiquity } = require("@sovryn-zero/lib-ethers");

async function example() {
  const provider = new providers.JsonRpcProvider("http://localhost:8545");
  const wallet = new Wallet(process.env.PRIVATE_KEY).connect(provider);
  const zero = await EthersLiquity.connect(wallet);

  const { newTrove } = await zero.openTrove({
    depositCollateral: 5, // ETH
    borrowZUSD: 2000
  });

  console.log(`Successfully opened a Zero Trove (${newTrove})!`);
}
```

## More examples

See [packages/examples](https://github.com/DistributedCollective/zero/tree/master/packages/examples) in the repo.


## API Reference

[API Reference](https://github.com/DistributedCollective/zero/blob/master/docs/sdk/lib-ethers.md).
npm package: @sovryn/ethers-provider
Description: Helper to use and configure ethers JsonRPC provider. Provider is for reading data from nodes and sending already signed transactions and not for signing it. For signing transactions use `@sovryn/onboard-core`.
Author: Victor Creed
Latest version: 1.0.3

# Sovryn Ethers provider

Helper to use and configure ethers JsonRPC provider.
Provider is for reading data from nodes and sending already signed transactions and not for signing it.
For signing transactions use `@sovryn/onboard-core`.

## Install

yarn add @sovryn/ethers-provider ethers

## Usage

Provider can be used in two ways

### 1. Get Provider using single chain config

```typescript
import { getProvider, Chain, ChainIds } from '@sovryn/ethers-provider';

const chain: Chain = {
  id: ChainIds.RSK_MAINNET,
  label: 'RSK Mainnet',
  rpcUrl: 'https://public-node.rsk.co',
};

const balance = await getProvider(chain).getBalance('0x0000000...');
```

### 2. Get Provider using global config

```typescript
import init, { getProvider, Chain, ChainIds } from '@sovryn/ethers-provider';

const chains: Chain[] = [{
  id: ChainIds.RSK_MAINNET,
  label: 'RSK Mainnet',
  rpcUrl: 'https://public-node.rsk.co',
}, {
  id: ChainIds.RSK_TESTNET,
  label: 'RSK Testnet',
  rpcUrl: 'https://public-node.testnet.rsk.co',
}];

// call it once somewhere early in the dapp
const config = init(chains);

// Get balance of first initiliased chain (RSK_MAINNET on this example)
const balance1 = await getProvider().getBalance('0x0000000...');

// Get balance by chain id
const balance2 = await getProvider(ChainIds.RSK_TESTNET).getBalance('0x0000000...');

// Passing chain config object still works
const balance2 = await getProvider(chains[1]).getBalance('0x0000000...');

// Passing chain id of chain which wasnt registered with init will return null
getProvider(ChainIds.ROPSTEN) // returns null

// Register additional chains (note: it does not check for duplicates!)
config.addChains([
    id: ChainIds.RSK_ROPSTEN,
    label: 'Ropsten',
    rpcUrl: 'https://ropsten.infura....',
]);

// Update existing chain (note: it checks if ChainId already in the list, if so - updates it with new data, if ChainId is not set - new chain will be registered).
config.updateChain([
    id: ChainIds.RSK_ROPSTEN,
    label: 'Ethereum Ropsten',
    rpcUrl: 'https://ropsten.infura.io/v3/....',
]);

// Get list of registered chains
const supportedChains = config.chains();

// Subscribe to registered chain changes (only new changes)
const sub = config.observe.subscribe(items => console.log(items));
sub.unsubscribe();

// Subscribe to registered chain changes (with seed)
import { startWith } from 'rxjs';
const sub = config.observe.pipe(startWith(config.chains())).subscribe(items => console.log(items));
sub.unsubscribe();
```
npm package: @sovryn/joe-core
Description: This repo contains tools for developing with [TraderJoe XYZ](https://www.traderjoexyz.com).
Latest version: 2.0.4

# Trader Joe core SDK

This repo contains tools for developing with [TraderJoe XYZ](https://www.traderjoexyz.com).

## Running

This project uses standard npm and yarn workflows.

Install dependencies

```sh
pnpm install
```

Compile

```sh
pnpm build
```

## Installation

This project is available as an npm package. Add to your project with `npm install @sovryn/joe-core`

## Attribution

This code was adapted from this Uniswap repo: [uniswap-sdk](https://github.com/Uniswap/sdk).
npm package: @sovryn/joe-sdk
Description: 🛠 An SDK for building applications on top of Trader Joe.
Latest version: 5.0.5

# Trader Joe SDK

This repo contains tools for developing with [TraderJoe XYZ](https://www.traderjoexyz.com) v1.

## Running

This project uses standard npm and yarn workflows.

Install dependencies

```sh
pnpm install
```

Compile

```sh
pnpm build
```

## Installation

This project is available as an npm package. Add to your project with `npm install @sovryn/joe-sdk`

## Attribution

This code was adapted from this Uniswap repo: [uniswap-sdk](https://github.com/Uniswap/sdk).
npm package: @sovryn/joe-sdk-v2
Description: This SDK contains tools for developing for the [Joe V2](https://www.traderjoexyz.com) protocol, which utilizes the Liquidity Book architecture.
Latest version: 3.0.15

# Joe V2 SDK

This SDK contains tools for developing for the [Joe V2](https://www.traderjoexyz.com) protocol, which utilizes the Liquidity Book architecture.

For more details:

- [Whitepaper](https://github.com/traderjoe-xyz/research/blob/main/JOE%20v2%20-%20Liquidity%20Book.pdf)
- [Developer Docs](https://docs.traderjoexyz.com/)
npm package: @sovryn/react-wallet
Description: Made with create-react-library
Author: Rytis Grincevicius
Latest version: 2.2.23

# @sovryn/react-wallet

[![NPM](https://img.shields.io/npm/v/@sovryn/react-wallet.svg)](https://www.npmjs.com/package/@sovryn/react-wallet) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save @sovryn/react-wallet
```

## Usage

Wrap your app with the WalletProvider and use `React.useContext(WalletContext)` to get the current wallet connection state and useful functions.
Then either you use the WalletButton component to connect, call the connect function or the unlock functions from the WalletContext.

```tsx
import React, { Component, useContext } from 'react';

import { WalletProvider, WalletButton, WalletContext } from '@sovryn/react-wallet';
import '@sovryn/react-wallet/index.css'

class App extends Component {
  render() {
    return <WalletProvider options={chainId:30, remember: true}><Home /></WalletProvider>
  }
}

class Home extends Component {
  const { address } = useContext(WalletContext);
  render() {
    return <>{!address ? <WalletButton /> : <p>Connected with {address}</p>)}</>
  }
}

```

## License

MIT © [grinry](https://github.com/grinry)
npm package: @sovryn/sdk
Description: ## Installation
Author: Victor Creed
Latest version: 2.0.10

# Sovryn SDK

## Installation

```bash
yarn add @sovryn/sdk @sovryn/contracts @sovryn/ethers-provider ethers @ethersproject/providers @ethersproject/abstract-provider
```

## Smart Router

Smart router is a wrapper around the smart contracts that allows you to interact with the smart contracts for swapping tokens in a more convenient way.

### Usage

```typescript
import { SmartRouter, DEFAULT_SWAP_ROUTES } from '@sovryn/sdk';
import { getProvider } from '@sovryn/ethers-provider';

// Get ethers provider
const provider = getProvider();

// Create a new instance of the smart router, passing the provider and the swap routes to use
const smartRouter = new SmartRouter(provider, DEFAULT_SWAP_ROUTES);

// Get token addresses we want to swap
const xusdToken = '0xb5999795BE0EbB5bAb23144AA5FD6A02D080299F';
const sovToken = '0xEFc78fc7d48b64958315949279Ba181c2114ABBd';
const amount = 100;

// Get the best swap route for a token pair
// result contains the best route and the amount of tokens we will get
// { route: SwapRoute, quote: BigNumber }
const result = await smartRouter.getBestQuote(ChainIds.RSK_MAINNET, xusdToken, sovToken, amount);

// Check if we need to permit xusd token to be able to swap
// permitTxData will return the permit data to be signed by the user
const permitTxData = await result.route.permit(xusdToken, sovToken, amount)
let signedPermit: string | undefined;
if (permitTxData) {
  // ask user to sign the transaction with permitTxData as data
  signedPermit = await signPermit(permitTxData);
}

// If permit is possible and approval is not required, we can skip the approval step
if (!permitTxData || permitTxData?.approvalRequired) {
  // Check if we need to approve xusd token to be able to swap
  // approveTxData will return the transaction data to be signed by the user
  // In most cases it will only have `to` and `data` fields
  const approveTxData = await result.route.approve(xusdToken, sovToken, amount)
  if (approveTxData) {
    // ask user to sign the transaction with approveTxData as data
  }
}

// Swap tokens
const txData = await result.route.swap(xusdToken, sovToken, amount, {
  // pass the permit data if permit is required
  typedDataValue: permitTxData?.typedData?.values,
  // pass signature if permit is required
  typedDataSignature: signedPermit,
});

// Sign the transaction with the user wallet of your choosing and send it to the network
const tx = await signAndSend(txData);
```
npm package: @sovryn/wallet
Description: Library for interacting with RSK and ETH wallets.
Author: Rytis Grincevicius
Latest version: 2.2.18

# @sovryn/wallet

[![NPM](https://img.shields.io/npm/v/@sovryn/wallet.svg)](https://www.npmjs.com/package/@sovryn/wallet) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
yarn add @sovryn/wallet
```

## License

MIT © [grinry](https://github.com/grinry)