La plateforme de contrats intelligents de Circle simplifie les échanges d'ETH vers USDC via un contrat intelligent avec un SDK pour un déploiement et une interaction faciles.
intégrez la plateforme de contrats intelligents de Circle dans leurs dApps ou applications.
Prérequis
Avant de procéder aux échanges ETH vers USDC à l'aide de la plateforme Circle, assurez-vous que les conditions préalables suivantes sont remplies :
Node.js (v16.14.2 ou version ultérieure) est installé sur votre ordinateur local.
Vous avez obtenu une clé d'accès Circle et une clé secrète. Pour savoir comment générer ces clés, reportez-vous au Circle Developer Hub.
Node Package Manager (NPM) est installé.
Rédaction du contrat intelligent
Le contrat intelligent interagira avec Uniswap pour effectuer les échanges de jetons. Lors du dépôt d'ETH, il est converti en Wrapped ETH (WETH) et peut être échangé contre de l'USDC à l'aide du protocole d'Uniswap.
Voici le code du contrat :
// Identifiant de licence SPDX : GPL-3.0
solidité pragma 0.8.17;
interface IUniswapV2Router02 {
fonction swapExactETHForTokens(
uint256 montantOutMin,
adresse[] chemin des données d'appel,
adresse à,
date limite uint256
) retours payables externes (montants mémoire uint256[]) ;
fonction WETH() retours purs externes (adresse);
}
contrat EthToUsdcSwap {
IUniswapV2Router02 constante privée uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F248cF);
adresse constante privée usdcAddress = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
fonction swapEthToUsdc(
uint256 minUsdcAmount,
adresse à
) payable externe {
chemin mémoire adresse[] = nouvelle adresse[](2);
chemin[0] = uniswapRouter.WETH();
chemin[1] = usdcAddress;
uniswapRouter.swapExactETHForTokens{value : msg.value}(
minUsdcAmount,
chemin,
à,
block.timestamp + 300
);
}
}
Compilation du contrat intelligent
Utilisez Remix IDE pour compiler le contrat et obtenir l'ABI (Application Binary Interface) et le bytecode.
Déploiement du Smart Contract
Utilisez le SDK de Circle pour déployer le contrat compilé. Avant de continuer, assurez-vous d'avoir défini les variables d'environnement CIRCLE_ACCESS_KEY et CIRCLE_SECRET_KEY dans votre terminal ou script.
Voici un exemple de commande :
déploiement des contrats intelligents npx circle
--abi="./build/contracts/EthToUsdcSwap.sol/EthToUsdcSwap.json"
--bytecode="0x$(cat build/contracts/EthToUsdcSwap.sol/EthToUsdcSwap.bin)"
--chain="ethereum"
--constructor-args='[]'
--output-dir="./output"
Une fois le déploiement réussi, vous recevrez un contractId et un transactionId pour référence future.
Interagir avec le contrat déployé
Pour effectuer des échanges de jetons à l'aide du contrat déployé :
Avant de continuer, assurez-vous d'avoir défini les variables d'environnement CIRCLE_ACCESS_KEY, CIRCLE_SECRET_KEY, CIRCLE_CONTRACT_ID et CIRCLE_CHAIN dans votre terminal ou script.
Voici un exemple de commande pour échanger 0,1 ETH en USDC et envoyer les jetons à l'adresse spécifiée :
npx circle-smart-contracts interagissent
--function="swapEthToUsdc"
--args='[0.1, "0x$(circle-wallet)"]'
--output-dir="./output"
Cette commande effectuera un échange de jetons de 0,1 ETH en USDC et enverra les jetons USDC échangés à votre portefeuille Circle Pay, qui peut être consulté dans le Circle Developer Hub.
Conclusion
La plateforme de contrats intelligents de Circle offre une solution rationalisée pour déployer et gérer des contrats intelligents pour échanger l'ETH en USDC. En tirant parti du SDK de Circle, les développeurs peuvent facilement exécuter des transactions sur la blockchain pour intégrer les services de Circle dans leurs dApps ou applications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!