uml电子商务网站建设文档,医院建设网站意义,做全景效果图的网站,吉林大学学院网站建设群#x1f680; 发行自己的加密货币#xff08;ERC-20 代币#xff09;
你可以使用 Solidity 编写 ERC-20 智能合约 来发行自己的加密货币#xff0c;然后部署到 以太坊#xff08;Ethereum#xff09; 或 BNB/Polygon 等 EVM 兼容链。 #x1f4cc; 1. ERC-20 代币是什么… 发行自己的加密货币ERC-20 代币
你可以使用 Solidity 编写 ERC-20 智能合约 来发行自己的加密货币然后部署到 以太坊Ethereum 或 BNB/Polygon 等 EVM 兼容链。 1. ERC-20 代币是什么
ERC-20 是 以太坊标准代币协议适用于 DApp、DeFi、ICO 等应用。 它定义了一些标准函数例如
totalSupply() 代币总供应量balanceOf(address) 查询地址余额transfer(address, amount) 代币转账approve() transferFrom() 允许代理转账如 DEX、质押
✅ ERC-20 适用于创建自己的 Token如 USDT、UNI、SHIBA。 2. 编写 ERC-20 代币智能合约
创建 MyToken.sol粘贴以下代码
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;import openzeppelin/contracts/token/ERC20/ERC20.sol;contract MyToken is ERC20 {constructor(uint256 initialSupply) ERC20(MyToken, MTK) {_mint(msg.sender, initialSupply * (10 ** uint256(decimals())));}
}代码解析
import openzeppelin/contracts/token/ERC20/ERC20.sol; 使用 OpenZeppelin ERC-20 标准库ERC20(MyToken, MTK) 代币名称 MyToken符号 MTK_mint(msg.sender, initialSupply * (10 ** uint256(decimals()))); 生成 initialSupply 数量的代币 3. 在 Remix IDE 部署测试网 主网
✅ 方法 1本地测试免费
打开 Remix IDE新建 MyToken.sol粘贴 Solidity 代码编译合约 选择 Solidity Compiler️版本 0.8.0点击 Compile 部署合约 选择 JavaScript VM (London)本地虚拟机免费输入初始供应量如 1000000点击 Deploy 测试代币 运行 totalSupply()查看总供应量运行 balanceOf(你的地址)查看余额
✅ 本地测试不消耗 ETH ✅ 方法 2以太坊测试网Goerli / Sepolia
获取测试 ETH Goerli FaucetSepolia Faucet MetaMask 连接测试网 切换到 Goerli / Sepolia 在 Remix 选择 Injected Provider 选择 Injected Provider - MetaMask点击 DeployMetaMask 确认交易 获取代币地址 在 Remix 终端找到合约地址添加到 MetaMask查看你的代币
✅ 测试网部署使用测试 ETH完全免费 ✅ 方法 3以太坊主网 / BNB / Polygon需要 ETH 交 Gas 费
准备 ETH / BNB / MATIC 以太坊Ethereum需要 ETHBNB ChainBSC需要 BNBPolygonMATIC需要 MATIC 选择 Injected Provider 连接 MetaMask主网 部署合约 Deploy 合约需要 Gas 费交易完成后查看合约地址 添加代币到 MetaMask 复制合约地址在 MetaMask 导入代币 并粘贴地址你的代币将出现在 MetaMask 钱包中
✅ 适用于正式上线但需要真 ETH / BNB 4. 交互 空投代币
如果你想给别人发送你的代币可以调用 transfer()
contract MyToken is ERC20 {constructor(uint256 initialSupply) ERC20(MyToken, MTK) {_mint(msg.sender, initialSupply * (10 ** uint256(decimals())));}// 空投代币function airdrop(address recipient, uint256 amount) public {require(balanceOf(msg.sender) amount, Not enough tokens);_transfer(msg.sender, recipient, amount);}
}调用
await contract.airdrop(0xRecipientAddress, ethers.utils.parseUnits(100, 18));方式环境是否收费
本地测试Remix VMJavaScript VM免费 ✅
以太坊测试网Goerli / Sepolia测试网免费需测试 ETH ✅
以太坊主网 / BSC / Polygon真实区块链需要 ETH / BNB 交 Gas 费 ❌