Skip to content

jores915/USDC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

USDC Stablecoin - Linea Network Deployment

Déploiement d'un stablecoin USDC sur le réseau Ethereum Linea avec support complet des fonctionnalités ERC20.

📋 Table des matières

🛠️ Prérequis

  • Node.js (v16 ou supérieur)
  • npm ou yarn
  • Une clé privée Ethereum avec des ETH pour les gas fees
  • Compte Lineascan API (optionnel, pour vérification)

📦 Installation

git clone https://github.com/jores915/USDC.git
cd USDC
npm install

Si vous avez une erreur d'incompatibilité de dépendances:

npm install --legacy-peer-deps

⚙️ Configuration

1. Créer le fichier .env

cp .env.example .env

2. Éditer .env avec vos paramètres

LINEA_RPC_URL=https://rpc.goerli.linea.build/
PRIVATE_KEY=votre_clé_privée_ici
DEPLOYER_ADDRESS=0x579862EE1f4f36028679ce5a22e19104610204D2
ETHERSCAN_API_KEY=votre_clé_api_lineascan_ici

⚠️ ATTENTION: Ne commit jamais votre .env (il est dans .gitignore)

🚀 Déploiement

Testnet Linea (Recommandé d'abord)

npm run deploy:linea-testnet

Output attendu:

✅ USDC deployed to: 0x...
📊 Deployment info saved to: deployments/59140-....json

Mainnet Linea (Après vérification sur testnet)

npm run deploy:linea-mainnet

🧪 Tests

# Exécuter les tests
npm test

# Avec rapport de gas
npm run gas-report

✨ Fonctionnalités

ERC20 Standard

  • ✅ Transfer
  • ✅ TransferFrom
  • ✅ Approve
  • ✅ Allowance

Fonctionnalités Avancées

  • Minting: Créer nouveaux tokens (owner uniquement)
  • Burning: Détruire tokens
  • Snapshots: Historique des balances à des hauteurs de bloc spécifiques
  • Permit: Signatures EIP-2612 pour approvals hors-chaîne
  • Ownable: Contrôle d'accès basé sur le propriétaire

Paramètres

Paramètre Valeur
Nom USD Coin
Symbole USDC
Décimales 6
Supply Initial 1,000,000 USDC

🌐 Réseaux Configurés

Linea Testnet (Goerli)

Linea Mainnet

📝 Structure du Projet

USDC/
├── contracts/
│   └── USDC.sol           # Contrat principal
├── scripts/
│   └── deploy.js          # Script de déploiement
├── test/
│   └── USDC.test.js       # Tests unitaires
├── hardhat.config.js      # Configuration Hardhat
├── package.json           # Dépendances
├── .env.example           # Variables d'environnement (exemple)
└── README.md              # Cette documentation

📚 Commandes Disponibles

npm test                       # Exécuter les tests
npm run compile                # Compiler les contrats
npm run deploy:linea-testnet   # Déployer sur testnet
npm run deploy:linea-mainnet   # Déployer sur mainnet
npm run verify:testnet         # Vérifier sur testnet
npm run verify:mainnet         # Vérifier sur mainnet
npm run gas-report             # Rapport d'utilisation de gas

🔍 Vérification du Contrat

Après déploiement, vérifiez votre contrat sur Lineascan:

npm run verify:linea-testnet -- 0x... constructor_args.js

📊 Interfaces

Mint (Owner uniquement)

await usdc.mint(address, amount);

Burn

await usdc.burn(amount);

Snapshot

const snapshotId = await usdc.snapshot();

Transfer Standard

await usdc.transfer(to, amount);

🆘 Dépannage

Erreur: "Cannot find module 'hardhat'"

npm install

Erreur: "ethers version incompatibility"

npm install --legacy-peer-deps

Gas fees trop élevés

  • Utilisez d'abord le testnet pour développer
  • Ajustez gasPrice dans hardhat.config.js
  • Attendez les heures creuses

Transaction rejetée

  • Vérifiez que votre wallet a assez d'ETH
  • Vérifiez que votre PRIVATE_KEY est correct
  • Vérifiez la configuration réseau

📖 Ressources

📄 Licence

MIT License - Voir LICENSE file

🤝 Support

Pour des questions ou problèmes:

  1. Vérifiez la documentation ci-dessus
  2. Consultez les logs d'erreur complets
  3. Ouvrez une issue sur GitHub

Deployed on Linea Network 🚀

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors