This repository contains the smart contract blocks for the Majora Finance protocol. These blocks are modular components that can be composed together to create complex DeFi strategies.
The repository contains two main swap blocks:
- MajoraCurveDepositBlock: A block to deposit in Curve pools
- MajoraCurveGaugeBlock: A block to stake in Curve gauges
- MajoraCurveHarvestBlock: A block to harvest Curve gauges
npm install --force
- Install dependencies:
npm install --force
- Create a
.env
file with the following variables:
POLYGON_RPC=<your-polygon-rpc-url>
- Compile contracts:
npx hardhat compile
Run the test suite:
npx hardhat coverage
- Deploy blocks:
npx hardhat deploy --tags MajoraBlocks
- Register blocks:
npx hardhat deploy --tags RegisterBlocks
Blocks can be configured using YAML files in the devkit-config
directory. Example configuration:
BlockParameters:
- attribute: token
type: address
value: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
- attribute: tokenInPercent
type: uint256
value: 100
- attribute: tokenOut
type: address
value: "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
Block metadata is defined in YAML files in the blocks-metadata
directory. This includes:
- Block identification
- Parameter definitions
- Protocol information
- Resolver configurations
MIT