/premia-contracts

Premia protocol smart-contracts

Primary LanguageTypeScriptOtherNOASSERTION

Premia - Next-Generation Options AMM

https://premia.finance

Deployments

Network
Ethereum Mainnet 📜
Arbitrum Mainnet 📜

Development

Install dependencies via Yarn:

yarn install

Setup Husky to format code on commit:

yarn prepare

Create a .env file with the following values defined:

Key Description
API_KEY_ALCHEMY Alchemy API key for node connectivity
API_KEY_ETHERSCAN Etherscan API key for source code verification
PKEY_ETH_TEST private key for test/development use on testnets
FORK_MODE if true, the local Hardhat network will be forked from mainnet
REPORT_GAS if true, a gas report will be generated after running tests

Create a .env.secret file with the following values defined:

Key Description
PKEY_ETH_MAIN private key for production use on mainnets

Testing

Test contracts via Hardhat:

yarn run hardhat test

Activate gas usage reporting by setting the REPORT_GAS environment variable to "true":

REPORT_GAS=true yarn run hardhat test

Generate a code coverage report using solidity-coverage:

yarn run hardhat coverage

Licensing

The primary license for Premia contracts is the Business Source License 1.1 (BUSL-1.1), see LICENSE.

Exceptions

  • Interfaces are licensed under LGPL-3.0-or-later (as indicated in their SPDX headers), see LICENSE_LGPL
  • All files in contracts/test remain unlicensed.