This is the repository of the core component of Grappa, which is a decentralized settlement layer for options and spreads.
In our design, a option (derivative) token can be created by different margin engine. Users with different risk tolerance can choose among different engines based on gas cost, capital efficiency and risk of liquidation.
We also natively support call spread and put spread that can increase capital efficiency by a lot while being fully collateralized.
For detailed documentation about how the system architecture is designed, please visit docs
forge build
forge test
For auto linting and running gas snapshot, you will also need to setup npm environment, and install husky hooks
# install yarn dependencies
yarn
# install hooks
npx husky install
forge test
forge coverage
forge fmt
Simulate deployment for launch
forge script script/deploy-launch.sol --private-key <your PK> --fork-url <RPC-endpoint>
installation
pip3 install slither-analyzer
pip3 install solc-select
solc-select install 0.8.13
solc-select use 0.8.13
Run analysis
slither ./src/core/
With hardhat
yarn add @grappafinance/grappa-contracts
# or
npm install @grappafinance/grappa-contracts
With Foundry
forge install grappafinance/core
Then you will be able to import the libraries or contract interface
pragma solidity ^0.8.0;
import "@grappafinance/grappa-contracts/src/libraries/ActionUtil.sol";