# KFC V3 Core

Core smart contracts for the KFC V3 Protocol.

## Installation

To install the package, run:

```bash
npm install kfc-v3-core
# or
yarn add kfc-v3-core
```

## Local deployment

In order to deploy this code to a local testnet, you can import the factory bytecode:

```typescript
import {
  abi as FACTORY_ABI,
  bytecode as FACTORY_BYTECODE,
} from 'kfc-v3-core/artifacts/contracts/KFCV3Factory.sol/KFCV3Factory.json'

// deploy the bytecode
```

This will ensure that your local deployment correctly interoperates with the KFC V3 code.

## Using solidity interfaces

The KFC V3 interfaces are available for import into solidity smart contracts:

```solidity
import 'kfc-v3-core/contracts/interfaces/IKFCV3Pool.sol';

contract MyContract {
  IKFCV3Pool pool;

  function doSomethingWithPool() {
    // pool.swap(...);
  }
}
```

## Development

```bash
# Install dependencies
npm install

# Compile contracts
npm run compile

# Run tests
npm run test
```

## Licensing

The primary license for KFC V3 Core is the Business Source License 1.1 (`BUSL-1.1`), see [`LICENSE`](./LICENSE).

Some files are dual licensed under `GPL-2.0-or-later`:
- All files in `contracts/interfaces/`
- Several files in `contracts/libraries/`
