💰One stop shop for Ethereum ABIs, addresses, and Solidity interfaces!
1,026
stars
293
commits
Solidity
primary language
Dec 9, 2024
updated

Get ABIs, Addresses, and Solidity Interfaces to popular DeFi protocols
Now with Typescript-powered autocomplete!
money-legos is an NPM package that provides you with the mainnet addresses, ABIs, and Solidity interfaces for popular DeFi protocols.
Protocols supported:
Importing specific protocols is also supported:
npm install @studydefi/money-legos
import { legos } from "@studydefi/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 "@studydefi/money-legos/uniswap";
uniswap.factory.abi;
uniswap.factory.address;
pragma solidity ^0.5.0;
import "@studydefi/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
);
}
}
Solidity
59.9%
TypeScript
36.5%
JavaScript
3.4%
💰One stop shop for Ethereum ABIs, addresses, and Solidity interfaces!
1,026
stars
293
commits
Solidity
primary language
Dec 9, 2024
updated

Get ABIs, Addresses, and Solidity Interfaces to popular DeFi protocols
Now with Typescript-powered autocomplete!
money-legos is an NPM package that provides you with the mainnet addresses, ABIs, and Solidity interfaces for popular DeFi protocols.
Protocols supported:
Importing specific protocols is also supported:
npm install @studydefi/money-legos
import { legos } from "@studydefi/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 "@studydefi/money-legos/uniswap";
uniswap.factory.abi;
uniswap.factory.address;
pragma solidity ^0.5.0;
import "@studydefi/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
);
}
}
Solidity
59.9%
TypeScript
36.5%
JavaScript
3.4%