Circle 的智慧合約平台透過具有 SDK 的智慧合約簡化了 ETH 到 USDC 的兌換,以方便部署和互動。
將 Circle 的智慧合約平台整合到他們的 dApp 或應用程式中。
先決條件
在使用 Circle 平台進行 ETH 到 USDC 互換之前,請確保滿足以下先決條件:
Node.js(v16.14.2 或更高版本)已安裝在您的本機上。
您已取得Circle Access Key和Secret Key。若要了解如何產生這些金鑰,請參閱 Circle 開發者中心。
節點套件管理器 (NPM) 已安裝。
編寫智能合約
智能合約將與 Uniswap 互動以執行代幣交換。存入 ETH 後,它會轉換為 Wrapped ETH (WETH),並可以使用 Uniswap 協定兌換為 USDC。
這是合約代碼:
// SPDX-許可證-識別碼:GPL-3.0
pragma Solidity 0.8.17;
介面 IUniswapV2Router02 {
函數 swapExactETHForTokens(
uint256 amountOutMin,
位址[] 呼叫資料路徑,
地址,
uint256 截止日期
) 外部應付收益(uint256[] 內存量);
函數 WETH() 外部純回傳(位址);
}
合約 EthToUsdcSwap {
IUniswapV2Router02 私有常數 uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F248cF);
位址私有常數 usdcAddress = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
函數 swapEthToUsdc(
uint256 minUsdcAmount,
地址
) 外部應付款項 {
位址[]記憶體路徑 = 新位址[](2);
路徑[0] = uniswapRouter.WETH();
路徑[1] = usdcAddress;
uniswapRouter.swapExactETHForTokens{value: msg.value}(
minUsdcAmount,
路徑,
到,
區塊.時間戳 + 300
);
}
}
編譯智能合約
使用Remix IDE編譯合約並取得ABI(應用程式二進位介面)和字節碼。
部署智能合約
使用Circle的SDK來部署編譯好的合約。在繼續之前,請確保您已在終端機或腳本中設定 CIRCLE_ACCESS_KEY 和 CIRCLE_SECRET_KEY 環境變數。
這是一個範例指令:
npx 圈智能合約部署
--abi="./build/contracts/EthToUsdcSwap.sol/EthToUsdcSwap.json"
--bytecode="0x$(cat build/contracts/EthToUsdcSwap.sol/EthToUsdcSwap.bin)"
--chain="以太坊"
--constructor-args='[]'
--output-dir="./output"
部署成功後,您將收到contractId和transactionId以供日後參考。
與已部署的合約互動
使用已部署的合約執行代幣交換:
在繼續之前,請確保您已在終端機或腳本中設定 CIRCLE_ACCESS_KEY、CIRCLE_SECRET_KEY、CIRCLE_CONTRACT_ID 和 CIRCLE_CHAIN 環境變數。
以下範例指令用於將 0.1 ETH 交換為 USDC 並將代幣發送到指定地址:
npx 圈智能合約互動
--function="swapEthToUsdc"
--args='[0.1, "0x$(圓錢包)"]'
--output-dir="./output"
此指令將執行 0.1 ETH 到 USDC 的代幣兌換,並將兌換後的 USDC 代幣發送到您的 Circle Pay 錢包,您可以在 Circle 開發者中心查看該錢包。
結論
Circle 的智慧合約平台提供了一個簡化的解決方案,用於部署和管理智慧合約以將 ETH 兌換為 USDC。透過利用 Circle 的 SDK,開發者可以輕鬆地在區塊鏈上執行交易,將 Circle 的服務整合到他們的 dApp 或應用程式中。
以上是Circle 的智慧合約平台支援 ETH 與 USDC 的無縫互換的詳細內容。更多資訊請關注PHP中文網其他相關文章!