open-index/open-npm huggingface dataset:
npm package: @nowarp/blueprint-misti
Description: Blueprint Misti Plugin
Author: Georgiy Komarov
Latest version: 0.9.0

# blueprint-misti

A plugin for the [Blueprint Framework](https://github.com/ton-org/blueprint/) that simplifies your workflow with the [Misti](https://nowarp.github.io/tools/misti/) static analyzer.

## Getting Started

1. [Install Soufflé](https://souffle-lang.github.io/install) to use all detectors provided by Misti.

2. Add this plugin as a dependency of your Blueprint project:
```bash
yarn add @nowarp/blueprint-misti
```

3. Add this configuration to `blueprint.config.ts`:
```ts
import { MistiPlugin } from '@nowarp/blueprint-misti';
export const config = {
  plugins: [
    new MistiPlugin(),
  ],
};
```

## Usage

Run the following command:
```bash
yarn blueprint misti
```

It will run the analysis of the available project, if there is one, or show an interactive window to select a project:

![img](./img/select-project.png)

See the [documentation](https://nowarp.io/tools/misti/) for the available configuration options.

## Resources
* [Misti: GitHub](https://github.com/nowarp/misti)
* [Misti Documentation: Using with Blueprint](https://nowarp.io/tools/misti/docs/tutorial/blueprint)
npm package: @nowarp/misti
Description: TON Static Analyzer
Author: Georgiy Komarov
Latest version: 0.9.0

# <img src="img/misti.svg" alt="Misti Logo" width="32"/> Misti
Misti is a static analysis tool designed for smart contracts on the [TON blockchain](https://ton.org/) written in [Tact](https://tact-lang.org/).

#### Features
- **Code Analysis**: Built-in suite of [41 detectors](https://nowarp.io/tools/misti/docs/next/detectors) for identifying security vulnerabilities and anti-patterns.
- **CI/CD Integration**:
  [Integrate](https://nowarp.io/tools/misti/docs/tutorial/ci-cd) Misti into your CI/CD pipeline to ensure continuous code quality checks.
- **Custom Detectors**: Create [custom detectors](https://nowarp.io/tools/misti/docs/hacking/custom-detector) to solve specific problems in your code or to provide a thorough security review if you are an auditor.
- **Custom Tools**: Extend Misti with your own tools for custom analysis and reporting capabilities.

## Getting Started
1. *(optional)* [Install Soufflé](https://souffle-lang.github.io/install) to enable more built-in detectors.
2. Install Misti:
```bash
npm install -g @nowarp/misti
```
3. Run Misti by specifying a Tact contract, project config, or directory to check:
```bash
misti path/to/src/contracts
```

See [Misti Configuration](https://nowarp.io/tools/misti/docs/tutorial/getting-started/) for available options, or [Developing Misti](https://nowarp.io/tools/misti/docs/next/hacking/developing-misti) for advanced instructions. Blueprint users should refer to the [appropriate documentation page](https://nowarp.io/tools/misti/docs/tutorial/blueprint).

## Resources
- **[nowarp.io](https://nowarp.io)**: We are doing other TON Security stuff beyond Misti.
- **[Scanner](https://nowarp.io/tools/scanner)**: A mass-scan tool that runs static analysis over all the publicly available contracts.
- **[Documentation](https://nowarp.io/tools/misti/docs)**: Comprehensive guide on detectors, architecture, and development.
- **[API Reference](https://nowarp.io/api/misti/)**: Useful for contributors or developers creating custom detectors.
- **[Blueprint Plugin](https://github.com/nowarp/blueprint-misti)**: A plugin for the Blueprint Framework to enhance your workflow.
- **[Community Chat](https://t.me/tonsec_chat)**: Join the conversation and get help with Misti-related questions.
npm package: @nowarp/souffle
Description: Souffle bindings for JavaScript/TypeScript
Author: Georgiy Komarov
Latest version: 0.1.2

# Souffle.js

Souffle.js offers bindings to [Soufflé](https://souffle-lang.github.io/), an open-source, parallel logic programming language.

## Installation

Install the library with Yarn:

```bash
yarn add @nowarp/souffle.js
```

## Getting Started

Here is an example implementing the [Simple Typed VarPointsTo](https://souffle-lang.github.io/examples#simple-typed-varpointsto) example:

```typescript
const ctx = new SouffleContext("VarPointsTo");

// Declare relations
ctx.add(
  relation("assign", [
    ["a", "Symbol"],
    ["b", "Symbol"],
  ]),
);

// Add facts
ctx.addFact("assign", ["v1", "v2"]);

// Define and output rules
ctx.add(
  relation(
    "alias",
    [
      ["a", "Symbol"],
      ["b", "Symbol"],
    ],
    "output",
  ),
);
ctx.add(rule([atom("alias", ["X", "X"])], [body(atom("assign", ["X", "_"]))]));

// Execute the Soufflé program
const executor = new SouffleSyncExecutor();
const out = executor.execute(ctx);
console.log("Raw Soufflé output:\n", out.results);
```

For the full example, see the source [here](./examples/simpleTypedVarPointsTo.ts).

## Projects Using Souffle.js

- [nowarp/misti](https://github.com/nowarp/misti) – Static analyzer for TON smart contracts