Array
(
[fid] => 6974
[description] => 专注于币圈最新最快资讯,数字货币应用及知识普及
[password] =>
[icon] => b1/common_6974_icon.png
[redirect] =>
[attachextensions] =>
[creditspolicy] => Array
(
[post] => Array
(
[usecustom] => 1
[cycletype] => 1
[cycletime] => 0
[rewardnum] => 5
[extcredits1] => 1
[extcredits2] => 1
[extcredits3] => 0
[extcredits4] => 0
[extcredits5] => 0
[extcredits6] => 0
[extcredits7] => 0
[extcredits8] => 0
[rid] => 1
[fid] => 6974
[rulename] => 发表主题
[action] => post
[fids] => 32,52,67,447,1120,1151,1156,6750,6762,6763,6766,6769,6772,6773,6787,6796,6808,6809,6810,6813,6814,6820,6829,6830,6846,6856,6864,6865,6827,6930,6931,6776,6858,6880,6764,6932,6871,6758,6905,1116,6788,6812,6798,6736,6759,6842,6966,6767,6828,6924,6935,6936,6938,6940,6941,6826,6909,6803,6919,6911,6908,6881,6920,6912,6913,6921,6925,6922,6789,6818,6819,6872,6928,6969,6889,6888,6917,6939,6947,6961,6937,6943,6970,6869,6900,6902,6783,6817,1111,6870,6821,6876,6952,6954,6960,6942,6910,6949,6962,6963,6964,6927,6926,6973,6728,6929,6874,6894,6896,6885,6857,6868,1113,6778,56,6844,6878,6802,6933,6811,6923,6877,6875,6918,6892,6757,6832,6833,6795,6793,6848,6837,6849,6850,6851,6852,6853,6854,6863,6882,6836,6790,6838,6794,6791,6873,555,6934,6958,6944,6945,6907,6779,6886,6950,6904,6956,6862,6957,6855,6955,6959,6914,6965,6971,6972,6953,6976,6824,6815,6891,6866,6979,6977,6765,6903,6948,6980,6981,6983,6799,6982,6951,6984,6975,6895,6845,6879,1121,6974
)
[reply] => Array
(
[usecustom] => 1
[cycletype] => 1
[cycletime] => 0
[rewardnum] => 0
[extcredits1] => 0
[extcredits2] => 1
[extcredits3] => 10
[extcredits4] => 0
[extcredits5] => 0
[extcredits6] => 0
[extcredits7] => 0
[extcredits8] => 0
[rid] => 2
[fid] => 6974
[rulename] => 发表回复
[action] => reply
[fids] => 32,52,67,447,1120,1151,1156,6750,6763,6766,6769,6772,6773,6787,6796,6808,6809,6810,6813,6814,6820,6829,6830,6846,6856,6864,6865,6827,6930,6931,6776,6858,6880,6764,6932,6871,6758,1116,6788,6812,6798,6736,6759,6842,6966,6767,6828,6924,6935,6936,6938,6940,6941,6826,6909,6803,6919,6911,6908,6881,6920,6912,6913,6921,6925,6922,6789,6818,6819,6872,6928,6969,6889,6888,6917,6939,6947,6961,6937,6943,6970,6869,6900,6902,6783,6817,1111,6870,6821,6876,6952,6954,6960,6942,6910,6949,6962,6963,6964,6927,6926,6973,6728,6929,6874,6894,6896,6885,6857,6868,1113,6778,56,6844,6878,6802,6933,6811,6923,6877,6875,6918,6892,6757,6832,6833,6795,6793,6848,6837,6849,6850,6851,6852,6853,6854,6863,6836,6790,6838,6794,6791,6873,555,6934,6958,6944,6945,6907,6779,6886,6950,6904,6956,6862,6957,6855,6955,6959,6914,6965,6971,6972,6953,6976,6824,6815,6891,6866,6979,6977,6765,6903,6948,6980,6981,6983,6799,6982,6951,6984,6975,6895,6845,6879,1121,6974
)
)
[formulaperm] => a:5:{i:0;s:0:"";i:1;s:0:"";s:7:"message";s:0:"";s:5:"medal";N;s:5:"users";s:0:"";}
[moderators] => 实习版主1
[rules] =>
[threadtypes] => Array
(
[required] => 1
[listable] => 1
[prefix] => 1
[types] => Array
(
[1590] => 论坛公告
[1752] => 公司优惠
[1603] => 虚拟币交流
[1753] => 数字钱包
[1754] => 虚拟币存提
[1755] => 交易所
[1655] => 虚拟币资讯
[1756] => 银行卡
[1757] => 第三方支付
[1760] => 币圈大佬
[1758] => 科技前沿
[1759] => 天策嗨聊
[1661] => 入驻合作
)
[icons] => Array
(
[1590] =>
[1752] =>
[1603] =>
[1753] =>
[1754] =>
[1755] =>
[1655] =>
[1756] =>
[1757] =>
[1760] =>
[1758] =>
[1759] =>
[1661] =>
)
[moderators] => Array
(
[1590] => 1
[1752] =>
[1603] =>
[1753] =>
[1754] =>
[1755] =>
[1655] =>
[1756] =>
[1757] =>
[1760] =>
[1758] =>
[1759] => 1
[1661] =>
)
)
[threadsorts] => Array
(
)
[viewperm] => 9 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 31 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3 7 8
[postperm] => 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[replyperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[getattachperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[postattachperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[postimageperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[spviewperm] =>
[seotitle] =>
[keywords] =>
[seodescription] =>
[supe_pushsetting] =>
[modrecommend] => Array
(
[open] => 0
[num] => 10
[imagenum] => 0
[imagewidth] => 300
[imageheight] => 250
[maxlength] => 0
[cachelife] => 0
[dateline] => 0
)
[threadplugin] => Array
(
)
[replybg] =>
[extra] => a:2:{s:9:"namecolor";s:0:"";s:9:"iconwidth";s:2:"60";}
[jointype] => 0
[gviewperm] => 0
[membernum] => 0
[dateline] => 0
[lastupdate] => 0
[activity] => 0
[founderuid] => 0
[foundername] =>
[banner] =>
[groupnum] => 0
[commentitem] =>
[relatedgroup] =>
[picstyle] => 0
[widthauto] => 0
[noantitheft] => 0
[noforumhidewater] => 0
[noforumrecommend] => 0
[livetid] => 0
[price] => 0
[fup] => 6729
[type] => forum
[name] => 虚拟币讨论大厅
[status] => 1
[displayorder] => 3
[styleid] => 0
[threads] => 28677
[posts] => 468649
[todayposts] => 123
[yesterdayposts] => 160
[rank] => 2
[oldrank] => 2
[lastpost] => 2778133 Q3财报:币价冷了,Coinbase的赚钱机器却热起来了(转) 1762075444 rainwang
[domain] =>
[allowsmilies] => 1
[allowhtml] => 1
[allowbbcode] => 1
[allowimgcode] => 1
[allowmediacode] => 0
[allowanonymous] => 0
[allowpostspecial] => 21
[allowspecialonly] => 0
[allowappend] => 0
[alloweditrules] => 1
[allowfeed] => 0
[allowside] => 0
[recyclebin] => 1
[modnewposts] => 2
[jammer] => 1
[disablewatermark] => 0
[inheritedmod] => 0
[autoclose] => 0
[forumcolumns] => 3
[catforumcolumns] => 0
[threadcaches] => 0
[alloweditpost] => 1
[simple] => 16
[modworks] => 1
[allowglobalstick] => 1
[level] => 0
[commoncredits] => 0
[archive] => 0
[recommend] => 0
[favtimes] => 0
[sharetimes] => 0
[disablethumb] => 0
[disablecollect] => 0
[ismoderator] => 0
[threadtableid] => 0
[allowreply] =>
[allowpost] =>
[allowpostattach] =>
)
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 244 小时
本月在线: 30 分钟
|
|
本文章详细的讲解一个最基础的链上加密货币发行过程,期间也需要利用到几个工具(当然本文章最后有一键发行的工具,嫌麻烦的可以直接翻到最后使用工具)标准流程全解析! V, r! t+ z- E6 I
以太坊代币(ERC‑20)从开发到上链的最简标准流程(只讲开发与发行)示例使用以太坊兼容链 + Hardhat + OpenZeppelin,先部署到测试网(Sepolia),确认无误后再部署主网。5 _, @$ D. e. @# n' I! x, \
一、环境准备
/ M: r6 K- d2 {9 d; [! p$ l- 必备
. {6 T7 B1 w6 p: E- ≥ 18 与 npm
+ C" y* a2 a% e# U7 i y- 一个以太坊钱包(如 MetaMask)" I7 ?1 ^0 D- |- G7 M% n" n
- 测试网 ETH(Sepolia Faucet 获取),主网部署需主网 ETH$ b+ ^3 {/ p/ z; z
- RPC 节点(Alchemy/Infura/Ankr 等均可)
7 p. J8 r1 U: k$ {' j0 A* P- 新建项目目录,例如:erc20-token,并进入该目录$ F3 L. M( L3 [/ I
二、安装与初始化! K" K' _0 R: u
- 初始化项目
/ ]/ J3 r! m: c G- npm init -y' m. F2 K2 A) c1 |/ s
- 安装依赖
( R3 J0 E2 Z" z- 开发工具:npm i -D hardhat @
9 N7 ~! l( O3 E* O9 @/ q; s: @nomicfoundation/hardhat-toolbox dotenv
1 p) Z9 W- a# ^% H: B- 合约库:npm i @openzeppelin/contracts
8 W2 v4 C6 w0 [4 y) X0 h7 C- 初始化 Hardhat(可交互,也可手动建文件)
) U' W$ h; u9 F$ l- 交互方式:npx hardhat(选择 JavaScript 项目)4 ~6 t4 B2 r k- K
- 或手动创建以下文件(见下一步)
- ?, V; k4 w3 h8 q K7 K三、最小化项目结构与配置; _/ N8 h: a! W, W9 @
- 新建 (最小可用配置)
/ h" J! w) b3 j8 I; a6 G# H" ? j- 内容示例:
" p- P9 s$ J5 B: w) B; D7 L( T- require("@nomicfoundation/hardhat-toolbox");7 x7 @, _' m0 {8 ^
- require("dotenv").config();
' m0 l% U9 v) q- = {3 c3 i9 `" T4 f* f* N* ~
solidity: "0.8.24",1 U; d0 A( K& p
networks: {* t; ]5 I+ [1 X6 A2 Z( p% S
sepolia: {& z( o. R8 S) e8 H
url: .SEPOLIA_RPC_URL,
% G% X( \1 k7 e2 U; M& m laccounts: [.PRIVATE_KEY].filter(Boolean),5 Q( V; m! `0 z% L; m
},
8 X$ V+ @; ?3 O$ u) H// mainnet: { url: .MAINNET_RPC_URL, accounts: [.PRIVATE_KEY].filter(Boolean) }
" r$ m) J* L( C5 y& g6 [},2 Z% H8 @4 R: ^% l5 K/ U
etherscan: {) ^4 J0 ?8 u5 T& D; H/ N. \
apiKey:: I3 f7 c0 B0 V: f
.ETHERSCAN_API_KEY, // 可选:用于合约校验' z1 A/ b8 }8 {- W( x
},
3 y" t3 E: i7 F};' `3 n d- }# `1 a6 I' W y
- 在项目根目录创建 .env,示例(请替换为你自己的值):
/ t/ a V2 `, O) T- SEPOLIA_RPC_URL=: o2 _& t8 r0 E( a9 }: d
- MAINNET_RPC_URL=2 k) L; U4 h- o+ f J
- PRIVATE_KEY=你的私钥(0x开头,无空格)
; B' T8 t+ L" A- ETHERSCAN_API_KEY=你的Etherscan API Key(可选,用于校验)
& V6 ~8 v* p; n3 e* T, r四、编写标准 ERC‑20 合约
# `+ K2 y& }; `, I- 在 contracts/ 目录下创建 ,示例代码:
$ G' w: V2 M6 }* G8 C% ?. c- pragma solidity ^0.8.20;
. M% q, o& s4 h* H: s- import "@openzeppelin/contracts/token/ERC20/";
+ ^, c. ?) `) a. b# C) [ N0 @& ^- contract MyToken is ERC20 {
4 D; H. T! F$ l1 gconstructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
' `' o, o' P. {: W_mint(, initialSupply);
3 y+ d2 S+ ]9 p- X- |* m}
% P3 p! |" x4 J4 B1 F}
6 t$ n; s! ~2 H) F& L- 说明- M$ T6 p2 H+ I. N. ]
- 名称与符号可自定义(如 "MyToken" / "MTK"); D+ P) H; g) ], v+ ?. K$ E
- initialSupply 为初始发行量(单位为最小单位 Wei,例如 18 位小数的代币需乘 10^18)
- ?( i. C/ u' V$ ]. ?五、编写部署脚本
3 T3 Y% C& b4 S4 @; y% ^- y0 @* v- 在 scripts/ 目录下创建 ,示例代码:( g8 E* V: R" A3 X
- const { ethers } = require("hardhat");& U J9 u8 E) J: c
- async function main() {" A. S: a, o: N0 J$ p$ C/ [
const initialSupply = ("100000000", 18); // 1亿枚,18位小数2 c g- y& v ~4 n
const token = await ("MyToken", [initialSupply]);
& F5 s# m: H/ {await ();6 C1 M% q) Y( N& W; o. Y
("MyToken deployed to:", );
1 _0 n. O0 ^& v) U}
4 e' V# A% V2 A; j8 d0 m- main().catch((error) => {
4 p* ~* \& t: x% e% M" _+ n/ p* h, e(error);) v8 B& c9 T1 J+ u9 X
= 1;
7 ?5 Q4 h) |4 ]" X" }8 A4 T});
( k% @6 q9 c( v* {9 C) P六、编译与部署到测试网(Sepolia): M% _/ R. U7 _7 p* g2 F4 l
- 编译:npx hardhat compile
: J( L+ ^8 m- ]4 V. X" Z* m- 部署:npx hardhat run scripts/ --network sepolia
1 b& N3 y% `2 a2 s- 运行成功会输出合约地址(MyToken deployed to: 0x...)
* I( _$ k w& Y( y1 t4 a- 在区块浏览器()查询该地址,确认合约已上链
' }( \4 W* d/ Y3 T七、可选:合约源码校验(便于他人查看源码与构造参数)# X$ G- k% r" f; \% z
- 命令:npx hardhat verify --network sepolia 合约地址 初始发行量(Wei)4 y1 h5 z, [' o$ X& Y
- 例:npx hardhat verify --network sepolia 0xYourTokenAddress
3 \: e+ z7 P: b! @7 X3 @100000000000000000000000000 R& P/ G- `2 `* R" F" R/ [
- 注意:这里的初始发行量需与部署脚本中的 initialSupply 完全一致(单位为 Wei)& Q& V( |. b* V9 J9 s$ g0 Y
八、在钱包中查看代币
( y( [' a5 \9 k0 q5 _* Y- 打开 MetaMask,选择对应网络(Sepolia 或主网)( A' I5 P( o, t# h% a2 S- ~4 i
- 选择“导入代币”,粘贴合约地址,确认代币符号与小数位(18)
6 C; ~+ ]' [1 j- 即可在钱包中看到初始发行的代币余额(在部署账户下)
0 `: N- p0 K x, `& Z九、部署到主网(可选)3 U3 ^7 `! j; _2 g3 M, j" P
- 确保 .env 中配置 MAINNET_RPC_URL、PRIVATE_KEY,且钱包内有主网 ETH
! q% ^1 ^& n4 X; T& j- 命令:npx hardhat run scripts/ --network mainnet0 N( Y9 C L; H9 e2 f$ W, K0 E1 c
- 可用 Etherscan 校验:npx hardhat verify --network mainnet 合约地址 初始发行量(Wei)
% H3 ]$ ?4 R3 y& d5 T十、常见问题与排查
$ u, {4 f3 F/ `- 部署报“insufficient funds for gas”:' L& K9 q5 ]: {- U: A" [9 [
- 账户没有足够 ETH(测试网/主网),先充值再部署8 x3 S C4 r7 F( D U) s2 B
- Ethers 版本导致的方法差异:" e# S; a# p* g* h
- 本教程基于 ethers v6(Hardhat Toolbox 默认),使用
5 h4 a2 J5 l, B- 私钥与 .env:
( l; ^2 H- E* D& J3 ~- PRIVATE_KEY 必须以 0x 开头,无引号与空格4 _2 w- r. l- G2 y6 Q6 f
- 确保 .gitignore 排除 .env,切勿泄露私钥/ z. ~ O3 A0 p% q1 o. e
- 构造参数不一致导致校验失败:
5 I, ^6 Z% T. {# v8 ^) M6 o- verify 命令的初始发行量(Wei)必须与部署时完全一致# q5 x5 `7 ]) n% x, Z$ A' T
到这里,你已经完成了一个标准 ERC‑20 代币从“编写 → 编译 → 部署 →(可选)校验 → 钱包查看”的完整最小流程。若你需要把名称/符号/小数位做成可配置,或加入可增发/销毁、暂停等扩展权限。
+ @& Q0 }% s, H% g) N) V4 M- S! @下面是一键发币的工具;
8 g% z, ]9 R, h4 X8 z7 m# ]5 c这个星辰发币是目前最好用的一个一键发币的工具( ),不需要授权,代码干净;最推荐。
6 ?% c0 q1 F! F( f这个dajgh也还可以但是需要授权( ),授权会带来一些安全方面的风险。6 c9 H5 @: E8 ?& w7 F; K; H
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 244 小时
本月在线: 30 分钟
|
|
|
这玩意儿整起来还挺麻烦啊,不过一键发行工具倒是省事,懒人直接冲就完事了 |
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 15 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 18 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 34 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 289 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 9 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 48 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 1 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 46 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 1 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 275 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 1 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 3 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 9 小时
本月在线: 0 分钟
|
|
|
方法最后一段话觉得是很有道理的,但是在我面前就难以实现,毕竟运程太差了。 |
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 140 小时
本月在线: 15 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 11 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|