Opty-Fi
defi-adapters
Solidity

Community built DeFi adapters compatible with opty.fi's earn protoocol

Last updated May 25, 2026
11
Stars
15
Forks
7
Issues
0
Stars/day
Attention Score
15
Language breakdown
Solidity 53.0%
TypeScript 46.3%
JavaScript 0.4%
Shell 0.3%
Files click to expand
README

Header

DeFi Adapters

Collection of defi adapters compatible with opty.fi's yield protocol - earn-protocol

Prerequisites

And passion for financial freedom...

Getting started

Development Setup

  • Create a .env file and set a BIP-39 compatible mnemonic as an environment variable. Follow the example in .env.example. If you don't already have a mnemonic, use this website to generate one.
  • You are only required to get the archive node URL of the network which is being used for developing/testing of defi Adapters.
Proceed with installing dependencies:
yarn install

What is a DeFiAdapter

  • DeFi adapter is a vital building block for executing opty.fi's network of strategies.
  • Specifications for DeFi adapter help perform :
- transactions like deposit, withdraw, staking, un-staking, adding liquidity, claim reward and harvesting of the reward. - read calls for liquidity pool token contract address, liquidity pool token balance, staked token balance, balance in underlying token of both staked and non-staked liquidity pool token, unclaimed reward tokens and reward token contract address
  • A DeFi Adapter smart contract requires implementation of following interfaces :
- IAdapter.sol (Mandatory) - IAdapterHarvestReward.sol (Optional) - IAdapterStaking.sol (Optional) - IAdapterBorrow.sol (Optional) - IAdapterInvestmentLimit.sol (Optional)
Pro Tip : Inherit IAdapterFull interface from IAdapterFull.sol to Adapter Contract if the protocol you choose required implementation of all the above interfaces.

Implementing IAdapter interface

Unit Tests

  • Write unit tests for all the functions across all the pool contracts gathered in Step 1.
  • You might want to use a test utility contract like TestDeFiAdapter for creating a sandbox environment to execute the transaction based on function signature and target address returned from getCodes()-style functions from DeFiAdapter.
  • All other functions can be directly tested from the DeFiAdapter contract.
  • The unit test for HarvestFinanceAdapter.sol can be found in HarvestFinanceAdapter.ts

Useful commands

| Usage | Command | | ------------------------------------------------------------------------------- | ---------------------------- | | Compile the smart contracts with Hardhat | $ yarn compile | | Compile the smart contracts and generate TypeChain artifacts | $ yarn typechain | | Lint the Solidity Code | $ yarn lint:sol | | Lint the TypeScript Code | $ yarn lint:ts | | Run the Mocha tests | $ yarn test:{network}:fork | | Generate the code coverage report | $ yarn coverage:{network} | | Delete the smart contract artifacts, the coverage reports and the Hardhat cache | $ yarn clean |

Syntax Highlighting

If you use VSCode, you can enjoy syntax highlighting for your Solidity code via the vscode-solidity extension. The recommended approach to set the compiler version is to add the following fields to your VSCode user settings:

{
  "solidity.compileUsingRemoteVersion": "v0.6.12+commit.27d51765",
  "solidity.defaultCompiler": "remote"
}

Where of course v0.6.12+commit.27d51765 can be replaced with any other version.

References

© 2026 GitRepoTrend · Opty-Fi/defi-adapters · Updated daily from GitHub