/bend-downpayment

Buying bluechip NFTs using Downpayment

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Build pass codecov

######                       ######     #    #######
#     # ###### #    # #####  #     #   # #   #     #
#     # #      ##   # #    # #     #  #   #  #     #
######  #####  # #  # #    # #     # #     # #     #
#     # #      #  # # #    # #     # ####### #     #
#     # #      #   ## #    # #     # #     # #     #
######  ###### #    # #####  ######  #     # #######

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.

Installation

# 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 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

  • 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

forge build
forge test
forge test -vv
forge tree

Example of Hardhat commands

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 (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.