Skip to content

LooksRare/contracts-exchange-v2

Repository files navigation

@looksrare/contracts-exchange-v2

Tests License: MIT SDK

Description

This project contains core smart contracts used for the LooksRare exchange protocol ("v2").

It also contains a peripheral contract (OrderValidatorV2A) that is used to verify the validity of (maker) orders.

Installation

# Yarn
yarn add @looksrare/contracts-exchange-v2

# NPM
npm install @looksrare/contracts-exchange-v2

Deployments

Network LooksRareProtocol TransferManager OrderV2AValidator
Ethereum 0x0000000000E655fAe4d56241588680F86E3b2377 0x000000000060C4Ca14CfC4325359062ace33Fe3D 0x2a784a5b5C8AE0bd738FBc67E4C069dB4F4961B7
Goerli 0x35C2215F2FFe8917B06454eEEaba189877F200cf 0xC20E0CeAD98abBBEb626B77efb8Dc1E5D781f90c 0x7454Cc9AEB024bcE6A2CDC49ad4733B4D8215fb8
Sepolia 0x34098cc15a8a48Da9d3f31CC0F63F01f9aa3D9F3 0xb46f116ecBa8451E661189F4b2B63aC60a618092 0x0bc129E4c1f8D7b5583eAbAeb1F7468935B6ec0C

NPM package

The NPM package contains the following:

  • Solidity smart contracts (".sol")
  • ABIs (".json")

ABIs are also distributed in the @looksrare/sdk-v2 package.

Documentation

The documentation for the exchange smart contracts will be available here.

Architecture

inheritance

Setup

  • Run yarn
  • Install Forge
  • Run forge update
  • Run git submodule update

About this repo

Structure

It is a hybrid Hardhat repo that also requires Foundry to run Solidity tests powered by the ds-test library.

To install Foundry, please follow the instructions here.

Run tests

  • Solidity tests are included in the foundry folder in the test folder at the root of the repo.

Example of Foundry/Forge commands

forge build
forge test
forge test -vv
forge tree

Example of shell commands

npx eslint '**/*.{js,ts}'
npx eslint '**/*.{js,ts}' --fix
npx prettier '**/*.{json,sol,md}' --check
npx prettier '**/*.{json,sol,md}' --write
npx solhint 'contracts/**/*.sol'
npx solhint 'contracts/**/*.sol' --fix

Coverage

It is required to install lcov.

brew install lcov

To run the coverage report, the below command can be executed.

forge coverage --report lcov
LCOV_EXCLUDE=("test/*" "contracts/libraries/*" "contracts/helpers/ProtocolHelpers.sol")
echo $LCOV_EXCLUDE | xargs lcov --output-file lcov-filtered.info --remove lcov.info
genhtml lcov-filtered.info --output-directory out
open out/index.html