# Aetherswap Periphery

[![Tests](https://github.com/aetherswap/periphery/workflows/Tests/badge.svg)](https://github.com/aetherswap/periphery/actions?query=workflow%3ATests)
[![Lint](https://github.com/aetherswap/periphery/workflows/Lint/badge.svg)](https://github.com/aetherswap/periphery/actions?query=workflow%3ALint)

![NFTImage](./test/__snapshots__/NFTDescriptor.svg)

This repository contains the periphery smart contracts for the Aetherswap Protocol.
For the lower level core contracts, see the [core-contracts](https://github.com/aetherswap/core-contracts)
repository.

## Local deployment

In order to deploy this code to a local testnet, you should install the npm package
`@aetherswap/periphery`
and import bytecode imported from artifacts located at
`@aetherswap/periphery/artifacts/contracts/*/*.json`.
For example:

```typescript
import {
  abi as SWAP_ROUTER_ABI,
  bytecode as SWAP_ROUTER_BYTECODE,
} from '@aetherswap/periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.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 Aetherswap code will correctly interoperate with
your local deployment.

## Using solidity interfaces

The Aetherswap periphery interfaces are available for import into solidity smart contracts
via the npm artifact `@aetherswap/periphery`, e.g.:

```solidity
import '@aetherswap/periphery/contracts/interfaces/ISwapRouter.sol';

contract MyContract {
  ISwapRouter router;

  function doSomethingWithSwapRouter() {
    // router.exactInput(...);
  }
}

```

♾️...