@benddao/bend-downpayment
Version:
BendDAO downpayment smart contracts
95 lines (69 loc) • 2.92 kB
Markdown
[](https://github.com/BendDAO/bend-downpayment/actions/workflows/tests.js.yml)
[](https://codecov.io/gh/BendDAO/bend-downpayment)
```
###### ###### # #######
# # ###### # # ##### # # # # # #
# # # ## # # # # # # # # #
###### ##### # # # # # # # # # # #
# # # # # # # # # # ####### # #
# # # # ## # # # # # # # #
###### ###### # # ##### ###### # # #######
```
# BendDAO Downpayment
## Description
This project contains all smart contracts used for the current BendDAO downpayment features. This includes:
- abstract downpayment contract
- BendDAO downpayment contract
- OpenSea downpayment contract
- LooksRare downpayment contract
- X2Y2 downpayment contract
## Documentation
The documentation for the downpayment smart contracts is available [here](https://docs.benddao.xyz/developers/deployed-contracts/down-payment).
## Installation
```shell
# Yarn
yarn add @benddao/bend-downpayment
# NPM
npm install @benddao/bend-downpayment
```
## NPM package
The NPM package contains the following:
- Solidity smart contracts (_".sol"_)
- ABI files (_".json"_)
## About this repo
### Structure
It is a hybrid [Hardhat](https://hardhat.org/) repo that also requires [Foundry](https://book.getfoundry.sh/index.html) to run Solidity tests powered by the [ds-test library](https://github.com/dapphub/ds-test/).
> To install Foundry, please follow the instructions [here](https://book.getfoundry.sh/getting-started/installation.html).
### Run tests
- TypeScript tests are included in the `test` folder at the root of this repo.
- Solidity tests are included in the `test` folder in the `contracts` folder.
### Example of Foundry/Forge commands
```shell
forge build
forge test
forge test -vv
forge tree
```
### Example of Hardhat commands
```shell
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
```
## Release
- Create a [Personal access token](https://github.com/settings/tokens/new?scopes=repo&description=release-it) (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.