###### ###### # #######
# # ###### # # ##### # # # # # #
# # # ## # # # # # # # # #
###### ##### # # # # # # # # # # #
# # # # # # # # # # ####### # #
# # # # ## # # # # # # # #
###### ###### # # ##### ###### # # #######
This project contains all smart contracts used for the current BendDAO exchange ("v1"). This includes:
- core exchange contract
- libraries
- currency manager contract
- execution manager and strategy contracts
- royalty-related contracts
- transfer managers and selector contracts
The documentation for the exchange smart contracts is available here.
BendDAO Exchange protocol refers to the architecture design and adopts some of the code of LooksRare. We are very grateful to LooksRare for providing us with an excellent exchange platform.
# Yarn
yarn add @benddao/bend-exchange-protocol
# NPM
npm install @benddao/bend-exchange-protocol
The NPM package contains the following:
- Solidity smart contracts (".sol")
- ABI files (".json")
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.
- TypeScript tests are included in the
test
folder at the root of this repo. - Solidity tests are included in the
test
folder in thecontracts
folder.
forge build
forge test
forge test -vv
forge tree
npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
npx hardhat help
REPORT_GAS=true npx hardhat test
npx hardhat coverage
npx hardhat run scripts/deploy.ts
TS_NODE_FILES=true npx ts-node scripts/deploy.ts
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
- Create a Personal access token (Don't change the default scope)
- Create an
.env
(copy.env.template
) and set your GitHub personal access token. yarn release
will run all the checks, build, and publish the package, and publish the GitHub release note.