.env 文件内容
从零开始:ENSO公链发币完整教程(附代码与注意事项)
引言:ENSO公链与去中心化新机遇
随着区块链技术的飞速发展,越来越多的开发者和项目方寻求在新兴的公链上部署自己的资产和智能合约,ENSO公链凭借其高性能、低交易成本以及友好的开发者生态,正逐渐成为许多新项目的理想选择,本文将为您提供一份详尽的、手把手的ENSO公链发币教程,帮助您从零开始,在ENSO上成功创建并发行自己的代币。
重要声明: 本文仅作为技术教程和知识分享,不构成任何投资建议,在进行任何链上操作前,请务必确保您已充分了解智能合约的风险,并做好充分的测试和风险评估,请在安全的网络环境下操作,并妥善保管您的私钥。
第一步:准备工作——搭建开发环境
在开始之前,您需要准备好以下工具和环境:
-
ENSO全节点钱包:这是与ENSO网络交互的基础,您可以从ENSO官方网站下载并安装最新版本的桌面钱包(如Enso Wallet),或者使用Web版钱包,请确保您已经创建并备份好自己的助记词。
-
开发工具:
- Node.js 和 npm:ENSO生态主要基于JavaScript/TypeScript,因此需要安装Node.js(建议版本 v16 或更高)和其包管理器npm。
- VS Code:一款流行的代码编辑器,并安装Solidity相关插件(如Solidity by Juan Blanco)以便更好地编写和调试智能合约。
- Git:用于版本控制和下载项目模板。
-
测试币:在主网上部署智能合约需要支付真实的Gas费,为了测试,您需要从ENSO的测试网水龙头 获取免费的测试币,请搜索“ENSO Testnet Faucet”找到官方或社区提供的水龙头地址。
第二步:选择并部署智能合约模板
发行代币最核心的部分是智能合约,对于标准的 fungible token(同质化代币,类似于ERC-20),ENSO社区通常遵循类似于EVM的标准,因此我们可以使用一个经过验证的开源模板。
创建项目目录
打开您的终端,创建一个新的项目文件夹并初始化:
mkdir my-enso-token cd my-enso-token npm init -y
安装Hardhat(可选但推荐)
Hardhat是一个强大的以太坊开发环境,可以极大地简化编译、测试和部署流程。
npm install --save-dev hardhat npx hardhat
在初始化过程中,选择 "Create a JavaScript project"(或TypeScript),并一路回车接受默认配置。
安装OpenZeppelin合约库
OpenZeppelin提供了经过安全审计的、标准的智能合约实现,是开发ERC-20代币的最佳实践。
npm install @openzeppelin/contracts
编写代币合约
在 contracts/ 目录下,创建一个新的Solidity文件,MyENSO.sol,编写您的代币合约代码:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyENSO is ERC20 {
constructor(string memory name, string memory symbol) ERC20(name, symbol) {
// 在部署时,向合约创建者(即您的钱包)发行 1,000,000,000 个代币
// _msgSender() 是Hardhat提供的一个辅助函数,用于获取调用者地址
_mint(_msgSender(), 1000000000 * 10**decimals());
}
}
代码解释:
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";:导入了OpenZeppelin的ERC20标准合约。contract MyENSO is ERC20:声明我们的合约MyENSO继承了ERC20的所有功能。constructor(string memory name, string memory symbol):构造函数,在合约部署时执行一次。name和symbol是代币的全称和简称(如 "My ENSO Token" 和 "MET")。_mint(_msgSender(), 1000000000 * 10**decimals());:这是核心的铸造逻辑,它向合约部署者的地址铸造了10亿个代币。decimals()是ERC20标准定义的小数位数,默认为18,10**18是1个代币的单位,这里的1000000000 * 10**decimals()代表100亿个最小单位。
第三步:配置部署脚本
我们需要编写一个部署脚本,告诉Hardhat如何将我们的合约部署到ENSO网络上。
配置Hardhat网络
打开 hardhat.config.js 文件,添加ENSO测试网的配置信息,您可以从ENSO官方文档或社区渠道获取测试网的RPC URL。
require("@nomicfoundation/hardhat-toolbox");
require('dotenv').config(); // 用于安全地管理私钥
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
solidity: "0.8.9",
networks: {
ensotestnet: {
url: process.env.ENSO_TESTNET_RPC_URL, // 从环境变量中读取
accounts: [process.env.PRIVATE_KEY], // 从环境变量中读取私钥
},
},
};
创建环境变量文件
在项目根目录下创建一个名为 .env 的文件,用于存储您的私钥和RPC URL。请务必将此文件添加到 .gitignore 中,不要上传到代码仓库!
PRIVATE_KEY="您的钱包私钥" // 注意:这是测试钱包的私钥,不要泄露主网私钥!
编写部署脚本
在 scripts/ 目录下,创建一个新的JavaScript文件,deploy.js:
async function main() {
// 获取合约工厂
const MyENSO = await ethers.getContractFactory("MyENSO");
// 部署合约,并传入代币名称和符号
const myENSO = await MyENSO.deploy("My ENSO Token", "MET");
// 等待合约部署完成
await myENSO.deployed();
console.log("MyENSO合约已部署到地址:", myENSO.address);
}
// 执行主函数
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});
第四步:编译、部署与验证
所有准备工作都已完成,可以执行部署了。
编译合约
在终端中运行:
npx hardhat compile
如果成功,Hardhat会在 artifacts/ 目录下生成编译后的合约字节码。
部署到测试网
确保您的测试钱包已经从水龙头获取了测试币,.env 文件中的私钥和RPC URL正确无误,然后运行:
npx hardhat run scripts/deploy.js --network ensotestnet
脚本会执行,并在终端输出您合约的部署地址。请务必复制并妥善保存这个地址!
验证合约(重要)
合约验证是指将您的源代码公开,这样任何人都可以在区块浏览器(如 Etherscan)上查看您的代码,增加项目的透明度和可信度。
ENSO通常有自己的区块浏览器,其验证方式可能与Etherscan略有不同,流程如下:
- 访问ENSO的区块浏览器。
- 找到 "Contract" 或 "Verify" 功能。
- 输入您刚刚获得的合约地址。
- 按照提示填写信息:合约名称(MyENSO)、编译器版本(v0.8.9)、源代码文件路径(contracts/MyENSO.sol)等。
- 提交验证,成功后,您的合约页面就会显示源代码。
第五步:后续操作与管理
合约部署成功后,您的工作并未结束。
- 代币分发:您可以通过调用合约的
transfer(address to, uint256 amount)函数,将代币分发给其他用户或流动性池。 - 上线交易所:如果您希望代币可以在交易所交易,您需要联系交易所的官方团队,完成上线申请流程,这通常包括KYC、项目尽调、提供流动性等步骤。
- 社区建设:制定代币经济模型,规划路线图,积极与社区互动,是项目成功的关键。

总结与风险提示
恭喜您!通过以上步骤,您已经成功地在ENSO公链上