elektrik-v1-core
Version:
Core smart contracts of Elektrik V1
67 lines (46 loc) • 3.06 kB
Markdown
# Elektrik V1
[](https://github.com/Elektrik/Elektrik-V1-core/actions/workflows/lint.yml)
[](https://github.com/Elektrik/Elektrik-V1-core/actions/workflows/tests.yml)
[](https://github.com/Elektrik/Elektrik-V1-core/actions/workflows/fuzz-testing.yml)
[](https://github.com/Elektrik/Elektrik-V1-core/actions/workflows/mythx.yml)
[](https://www.npmjs.com/package/@Elektrik/V1-core/v/latest)
This repository contains the core smart contracts for the Elektrik V1 Protocol.
For higher level contracts, see the [Elektrik-V1-periphery](https://github.com/Elektrik/Elektrik-V1-periphery)
repository.
## Bug bounty
This repository is subject to the Elektrik V1 bug bounty program, per the terms defined [here](./bug-bounty.md).
## Local deployment
In order to deploy this code to a local testnet, you should install the npm package
`/V1-core`
and import the factory bytecode located at
`/V1-core/artifacts/contracts/ElektrikV1Factory.sol/ElektrikV1Factory.json`.
For example:
```typescript
import {
abi as FACTORY_ABI,
bytecode as FACTORY_BYTECODE,
} from '/V1-core/artifacts/contracts/ElektrikV1Factory.sol/ElektrikV1Factory.json'
// deploy the bytecode
```
This will ensure that you are testing against the same bytecode that is deployed to
mainnet and public testnets, and all Elektrik code will correctly interoperate with
your local deployment.
## Using solidity interfaces
The Elektrik V1 interfaces are available for import into solidity smart contracts
via the npm artifact `/V1-core`, e.g.:
```solidity
import '/V1-core/contracts/interfaces/IElektrikV1Pool.sol';
contract MyContract {
IElektrikV1Pool pool;
function doSomethingWithPool() {
// pool.swap(...);
}
}
```
## Licensing
The primary license for Elektrik V1 Core is the Business Source License 1.1 (`BUSL-1.1`), see [`LICENSE`](./LICENSE). However, some files are dual licensed under `GPL-2.0-or-later`:
- All files in `contracts/interfaces/` may also be licensed under `GPL-2.0-or-later` (as indicated in their SPDX headers), see [`contracts/interfaces/LICENSE`](./contracts/interfaces/LICENSE)
- Several files in `contracts/libraries/` may also be licensed under `GPL-2.0-or-later` (as indicated in their SPDX headers), see [`contracts/libraries/LICENSE`](contracts/libraries/LICENSE)
### Other Exceptions
- `contracts/libraries/FullMath.sol` is licensed under `MIT` (as indicated in its SPDX header), see [`contracts/libraries/LICENSE_MIT`](contracts/libraries/LICENSE_MIT)
- All files in `contracts/test` remain unlicensed (as indicated in their SPDX headers).