0.1.3 • Published 3 years ago
@looksrare/contracts-exchange-v2 v0.1.3
@looksrare/contracts-exchange-v2
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-v2Deployments
| Network | LooksRareProtocol | TransferManager | OrderV2AValidator |
|---|---|---|---|
| Ethereum | 0x0000000000E655fAe4d56241588680F86E3b2377 | 0x000000000060C4Ca14CfC4325359062ace33Fe3D | 0x2a784a5b5C8AE0bd738FBc67E4C069dB4F4961B7 |
| Goerli | 0x35C2215F2FFe8917B06454eEEaba189877F200cf | 0xC20E0CeAD98abBBEb626B77efb8Dc1E5D781f90c | 0x7454Cc9AEB024bcE6A2CDC49ad4733B4D8215fb8 |
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
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
foundryfolder in thetestfolder at the root of the repo.
Example of Foundry/Forge commands
forge build
forge test
forge test -vv
forge treeExample 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' --fixCoverage
It is required to install lcov.
brew install lcovTo 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