open-index/open-npm huggingface dataset:
npm package: @kraken97/restate
Description: [![CircleCI](https://circleci.com/gh/zhDmitry/restate.svg?style=svg)](https://circleci.com/gh/zhDmitry/restate) [![NPM Downloads](https://img.shields.io/npm/dm/@kraken97/restate.svg?style=flat)](https://www.npmjs.com/package/@kraken97/restate)
Author: Dima Zherebko
Latest version: 3.2.2

# Restate

[![CircleCI](https://circleci.com/gh/zhDmitry/restate.svg?style=svg)](https://circleci.com/gh/zhDmitry/restate)
[![NPM Downloads](https://img.shields.io/npm/dm/@kraken97/restate.svg?style=flat)](https://www.npmjs.com/package/@kraken97/restate)

## Into

This lib was created for reducing pain from redux boilerplaite.

1.  remove reducers and actions creators boilerplate
2.  remove boilerplate from binding actions, all actions are autbinded to their scope
3.  remove boilerplate from selecting hight level state, now to can use .select method on every reducer to select his state
4.  more sophisticated way for computed values which works without memoization (like mobx but more performat and without wrapping all the state into getters)
5.  more easier way for nested updates
6.  strictly typed and good test coverage

## install

```
yarn add @kraken97/restate
```

## how to use

doc soon
see [tree view example from redux](https://github.com/zhDmitry/restate/tree/master/examples/tree/src)

[![Play kxr5vy1x6v](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/kxr5vy1x6v)

```js
import { createActions, createState, build } from "@kraken97/restate";

const actions = createActions({
  inc: build.plain
});

const countersState = createState([[0, 0, 0, 0]]);
// different types of counters
const state = createState({ counters: countersState });
state.on(actions.inc, (state, p) => {
  return state + 1;
});

//[OPTIONAL] auto bind all actions to redux
// store is redux store
state.use(store.dispatch);

countersState.select(store.getState()); // will return state from root

// dispatch actions
// all actions are autobinded to store after using .use action
// you can assign one action to multiple stores
// to access plain action call inc.raw();
inc(1);
inc(2);
inc(2);
inc(3);
inc(8);
```

## test coverage

```
-------------------|----------|----------|----------|----------|-------------------|
File               |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
-------------------|----------|----------|----------|----------|-------------------|
All files          |    93.02 |    86.11 |    87.37 |    93.08 |                   |
-------------------|----------|----------|----------|----------|-------------------|
```

## todo

1.  improve types
2.  extend api with (comparators and computed see rfc.md)
3.  improve tests
4.  think about async actions
npm package: @krakenfx/verify
Description: Kraken Verify access control contracts for EAS attestations
Author: Kraken
Latest version: 0.1.3

# @krakenfx/verify

Solidity contracts for Kraken Verify - EAS attestation utilities for verified Kraken users.

## Installation

```bash
# Using npm
npm install @krakenfx/verify

# Using yarn
yarn add @krakenfx/verify

# Using pnpm
pnpm add @krakenfx/verify
```

## Setup

### Solidity Setup

#### Remappings

Generate remappings for Foundry:

```bash
forge remappings > remappings.txt
```

You might need to add this extra one manually if you're using pnpm:


```txt
@ethereum-attestation-service/=node_modules/.pnpm/@ethereum-attestation-service+eas-contracts@1.8.0/node_modules/@ethereum-attestation-service
```

#### IDE Configuration

Update your IDE to support remappings. For VS Code:

```json
// .vscode/settings.json
{
  "solidity.remappings": [
    "...=node_modules/...",
  ]
}
```

### TypeScript Setup

If you're using TypeScript in your project, make sure to configure it to handle JSON imports:

```json
// tsconfig.json
{
  "compilerOptions": {
    // ...other options
    "resolveJsonModule": true,
    "esModuleInterop": true
  }
}
```

## Smart Contract Usage

```solidity
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

// Import directly from package
import { KrakenVerifyAccessControl } from "@krakenfx/verify/src/abstracts/KrakenVerifyAccessControl.sol";

contract MyContract is KrakenVerifyAccessControl {
    // Only users with valid Kraken Verify attestations can call this function
    function verifiedUserFunction() external onlyVerified {
        // Your implementation
    }
}
```

## Client Usage

### ESM / TypeScript

```typescript
// ES Modules / TypeScript
import { VerifyClient } from "@krakenfx/verify";

const verifyClient = new VerifyClient();

// Check if an address is verified
const isVerified = await verifyClient.isAddressVerified(
  "0x2193981f2d65149644C039c9071f2bE8b5938F0B"
);

console.log(
  `Verification result: ${isVerified ? "✅ Verified" : "❌ Not verified"}`
);
```

### CommonJS

```javascript
// CommonJS
const { VerifyClient } = require("@krakenfx/verify");

const verifyClient = new VerifyClient();

// Check if an address is verified
async function checkVerification() {
  const isVerified = await verifyClient.isAddressVerified(
    "0x2193981f2d65149644C039c9071f2bE8b5938F0B"
  );
  
  console.log(
    `Verification result: ${isVerified ? "✅ Verified" : "❌ Not verified"}`
  );
}

checkVerification();
```

## What's Included

This package provides access control for verified Kraken users through EAS attestations:

- `KrakenVerifyAccessControl.sol`: Abstract contract with the `onlyVerified` modifier
- Supporting libraries and interfaces for attestation verification
- TypeScript client for verification checks

## Requirements

- Solidity 0.8.24
- TypeScript (for client usage)
- Viem (peer dependency for TypeScript client)

## License

MIT