Unify USDC liquidity on Harmony with seamless 1:1 token conversions.
- 🔄 Seamless 1:1 USDC conversion
- 💱 Unified liquidity across multiple USDC implementations
- 🔒 Secure smart contract implementation
- 📱 Responsive design for both desktop and mobile
- 🌐 Web3 integration with MetaMask
- ⚡ Optimized for Harmony Network
- 💧 Reduce fragmented liquidity
- 💪 Enhance capital efficiency
- 🔍 Improve price discovery
- 🌊 Deeper liquidity pools
The project consists of two main smart contracts:
Token.sol
: An ERC20 token contract with minting capabilitiesTokenConverter.sol
: Handles the conversion between different token types
- Token Converter:
0x003f4d122982ccCcb5AF817dE055E5F841509CCC
- Input Token 1:
0x5573264539929ed86F81bF18Ac05A99502557ACe
- Input Token 2:
0x4c98df6344b4b1672ca784B45a9DAa79C6133De4
- Output Token (USDC.e):
0x3BC1d310e8B1d52ab96D7fE43c9A90eb0EC6FE39
- React with Vite
- TypeScript
- Tailwind CSS
- Web3.js
- HeadlessUI
- Solidity ^0.8.26
- OpenZeppelin Contracts
- Hardhat
- Foundry
- Node.js >= 16
- npm or yarn
- MetaMask wallet
- Clone the repository:
git clone https://github.com/ONETheo/usdc-converter.git
cd usdc-converter
- Install dependencies:
# Install root project dependencies
npm install
# Install frontend dependencies
cd frontend
npm install
- Start the development server:
# From the root directory
npm run dev
- Install Hardhat dependencies:
npm install
- Compile contracts:
npm run compile
- Run tests:
npm test
- Deploy to Harmony mainnet:
# USDC Converter
Unify USDC liquidity on Harmony with seamless 1:1 token conversions.
## Getting Started
### Prerequisites
- Node.js >= 16
- npm or yarn
- MetaMask wallet
### Installation
1. Clone the repository:
```bash
git clone https://github.com/ONETheo/usdc-converter.git
cd usdc-converter
- Install root project dependencies:
npm install
- Install frontend dependencies:
cd frontend
npm install
- Start the development server:
npm run dev
- Compile contracts:
npm run compile
- Run tests:
npm test
- Deploy to Harmony mainnet:
npx hardhat run ./scripts/deploy.js --network mainnet
- Token Converter:
0x003f4d122982ccCcb5AF817dE055E5F841509CCC
- Input Token 1:
0x5573264539929ed86F81bF18Ac05A99502557ACe
- Input Token 2:
0x4c98df6344b4b1672ca784B45a9DAa79C6133De4
- Output Token (USDC.e):
0x3BC1d310e8B1d52ab96D7fE43c9A90eb0EC6FE39
## Testing
### Frontend Tests
```bash
cd frontend
npm test
# Run Hardhat tests
npm test
# Run Foundry tests
forge test
The system uses a two-contract architecture:
-
Token.sol
:- ERC20 implementation
- Minting capabilities
- Ownership controls
-
TokenConverter.sol
:- Manages token conversions
- Maintains supported token list
- Handles token transfers and minting
- React components with TypeScript
- Custom hooks for Web3 integration
- Responsive design with mobile-first approach
- State management using React hooks
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.