@badger-finance/money-legos
v2.5.4
Published
![Badger Logo](./assets/badger-logo.png) # Badger Legos
Downloads
126
Maintainers
Readme
Badger Legos
Badger legos extends upon the excellent work of @studydefi money-legos
to provide you with the mainnet addresses, ABIs, Solidity interfaces, convenience wrappers, and utility functions for popular DeFi and DAO protocols.
Get ABIs, Addresses, and Solidity Interfaces to popular DeFi protocols
Now with Typescript-powered autocomplete!
Protocols supported:
- AAVE
- Aragon (new)
- Badger DAO (new)
- Badger Sett (new)
- Compound
- Curve Finance (expanded)
- DappSys
- DyDx
- ERC20 (expanded)
- Gnosis Safe (new)
- Idle V3
- Kyber.Network
- MakerDAO
- OneSplit
- UMA Protocol
- Uniswap v1
- Uniswap v2 (new)
- Synthetix
- Balancer
- mStable
Install
npm install @badger-finance/money-legos
Usage
JavaScript
import { legos } from "@badger-finance/money-legos";
// access ABIs and addresses
legos.erc20.abi;
legos.erc20.dai.address;
// of many popular DeFi protocols
legos.uniswap.factory.abi;
legos.uniswap.factory.address;
// import only the protocol you are interested in
import uniswap from "@badger-finance/money-legos/uniswap";
uniswap.factory.abi;
uniswap.factory.address;
Solidity
pragma solidity ^0.5.0;
import "@badger-finance/money-legos/onesplit/contracts/IOneSplit.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract OneSplitSwapper {
// Uniswap Mainnet factory address
address constant OneSplitAddress = 0xC586BeF4a0992C495Cf22e1aeEE4E446CECDee0E;
function _swap(address from, address to, uint256 amountWei) internal {
IERC20 fromIERC20 = IERC20(from);
IERC20 toIERC20 = IERC20(to);
(uint256 returnAmount, uint256[] memory distribution) = IOneSplit(
OneSplitAddress
).getExpectedReturn(
fromIERC20,
toIERC20,
amountWei,
10,
0
);
IOneSplit(OneSplitAddress).swap(
fromIERC20,
toIERC20,
amountWei,
returnAmount,
distribution,
0
);
}
}