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] => 29305
[posts] => 477909
[todayposts] => 24
[yesterdayposts] => 122
[rank] => 49
[oldrank] => 2
[lastpost] => 2797348 今日虚拟币市场,还是跌多涨少啦 1768453289 22301
[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] =>
)
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 311 小时
本月在线: 14 小时
|
|
本文章详细的讲解一个最基础的链上加密货币发行过程,期间也需要利用到几个工具(当然本文章最后有一键发行的工具,嫌麻烦的可以直接翻到最后使用工具)标准流程全解析
4 m% }9 w8 a( a6 B( u& ?+ ^5 b以太坊代币(ERC‑20)从开发到上链的最简标准流程(只讲开发与发行)示例使用以太坊兼容链 + Hardhat + OpenZeppelin,先部署到测试网(Sepolia),确认无误后再部署主网。. L9 k, f* l9 m: k& |( y) E- e) }' i
一、环境准备$ Z: m( m. i3 [" D4 V: X
- 必备/ p" Z/ K9 d+ {' E0 }. m
- ≥ 18 与 npm' D) O3 u: R+ N; ^' Z0 `
- 一个以太坊钱包(如 MetaMask)
( L* ?% Q/ {& j" a5 S3 x- 测试网 ETH(Sepolia Faucet 获取),主网部署需主网 ETH( G; k9 T" y+ G( t
- RPC 节点(Alchemy/Infura/Ankr 等均可), `4 q+ A& b c' r, c
- 新建项目目录,例如:erc20-token,并进入该目录
z! ~: D/ w& U7 h二、安装与初始化
E5 M9 i: g0 p4 O- 初始化项目
4 D5 R- b. m* J m6 |* E- npm init -y1 Y7 D& ~1 V! v5 P( H4 j/ L
- 安装依赖& _- j4 g. G) V5 H
- 开发工具:npm i -D hardhat @
5 F v+ w; F+ F8 n! P, W8 jnomicfoundation/hardhat-toolbox dotenv
1 s: }4 h; `7 M0 S- 合约库:npm i @openzeppelin/contracts+ o F1 h% H; I* y0 ?
- 初始化 Hardhat(可交互,也可手动建文件)
0 ?1 [# ?# U. z- 交互方式:npx hardhat(选择 JavaScript 项目)8 G2 g, t! W' }
- 或手动创建以下文件(见下一步)
# S) o5 F$ B$ S# ?# M6 u1 `三、最小化项目结构与配置$ C' o/ U X) B& Z$ V
- 新建 (最小可用配置)
( w% F) C% K! m; u! P3 L; k& n- 内容示例:
! y% x; a7 U0 |6 {! H ^* |- _- require("@nomicfoundation/hardhat-toolbox");! B+ J" m6 K8 D( d
- require("dotenv").config();
! H* y+ j C( ^: W' \) `- = {
, J' B' [+ f6 X8 V# Rsolidity: "0.8.24",
& N1 ]& v/ F' B3 r* L- jnetworks: {
1 ]- F: h; b- A# u( S% ~sepolia: {
, ^) J. q9 p1 G( gurl: .SEPOLIA_RPC_URL,
2 K7 p5 v$ v6 X; `accounts: [.PRIVATE_KEY].filter(Boolean),5 M1 n8 w$ j) |
},
( A" A, `$ Z& _$ Y; A/ f" C: V// mainnet: { url: .MAINNET_RPC_URL, accounts: [.PRIVATE_KEY].filter(Boolean) } S! h, x+ P, k8 l6 j% R
},$ d' g6 l# U" [3 c( l5 n
etherscan: {
r* i6 {, K! F& x( R# [apiKey:
! M6 q; }+ B$ H! E1 \5 n.ETHERSCAN_API_KEY, // 可选:用于合约校验 R: a! h$ ^5 p7 B$ R
},6 o2 N" a1 v/ |' }7 ~/ s
};
" g' l! a3 m; d9 x8 L$ W- 在项目根目录创建 .env,示例(请替换为你自己的值):
! A4 G0 ? w7 i! L- SEPOLIA_RPC_URL=
; B3 y' t4 d. I- MAINNET_RPC_URL=9 z0 M- H! W8 @+ t* @& Z% }2 ]) ?
- PRIVATE_KEY=你的私钥(0x开头,无空格) M/ e" O" J* E* b5 z
- ETHERSCAN_API_KEY=你的Etherscan API Key(可选,用于校验)$ o2 O7 V4 {7 @( U0 f
四、编写标准 ERC‑20 合约
; v& u% B/ `$ o& U* Y) w- 在 contracts/ 目录下创建 ,示例代码:7 I7 D# q/ T2 I" L' e
- pragma solidity ^0.8.20;* k( J+ u) N1 f5 Y$ E
- import "@openzeppelin/contracts/token/ERC20/";; \% [0 h L5 C. l3 f
- contract MyToken is ERC20 {# y5 } W' P% U0 q8 d1 L5 A
constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {, q$ |$ F1 {+ C( E2 m
_mint(, initialSupply);
{6 u: _8 r0 i9 W* Z, Z% X E}9 q) Y6 p- u4 N f; j: i+ J* E
}
2 p# }/ _, U1 G, ^5 t4 Z7 ~2 Y- 说明& v$ G: e% F3 v6 G
- 名称与符号可自定义(如 "MyToken" / "MTK")
4 X; E- v2 t- |2 ~* _# W- initialSupply 为初始发行量(单位为最小单位 Wei,例如 18 位小数的代币需乘 10^18), @" i4 Q) {- l
五、编写部署脚本
, e5 ^) t4 B0 D9 {2 I- 在 scripts/ 目录下创建 ,示例代码:$ m- I3 ^$ _* A' S
- const { ethers } = require("hardhat");
) y0 ]/ L6 `5 y. W/ I4 f- async function main() {
" ~* G [) @$ m! b3 wconst initialSupply = ("100000000", 18); // 1亿枚,18位小数( ~* n0 N# z3 p) h2 c& P
const token = await ("MyToken", [initialSupply]);2 N |' \2 t ]
await ();
, f$ o2 U& S9 J% \( q("MyToken deployed to:", ); j0 l; f$ A& D9 e% X o0 I, |1 h
}) V) m) E+ A) W+ U4 c
- main().catch((error) => {
9 z5 [) q) K# C! O. Q+ A X0 j6 i) a(error);# S$ @/ v) ~- ^# d r5 D8 K$ m# z9 d# G
= 1;
, c% O4 A. H$ w) }# s});
0 x g0 C5 A1 r: d; l O) [( {% G6 a& A7 c六、编译与部署到测试网(Sepolia) G7 v* k$ `1 X
- 编译:npx hardhat compile
( g' c" d4 t7 \' O: v9 ~5 Z# h- 部署:npx hardhat run scripts/ --network sepolia
! L* f" j' `7 P" ?- 运行成功会输出合约地址(MyToken deployed to: 0x...). \8 N: V7 t x& m+ h
- 在区块浏览器()查询该地址,确认合约已上链. O$ [6 u: `2 r# l+ J
七、可选:合约源码校验(便于他人查看源码与构造参数)( o$ I: \* Z* t( E; C1 K! c. C
- 命令:npx hardhat verify --network sepolia 合约地址 初始发行量(Wei)
! f& ^ x: C% f8 D7 Q# J! l! m- 例:npx hardhat verify --network sepolia 0xYourTokenAddress3 I" D4 F2 q9 o u- [% L
100000000000000000000000000
# d* r0 V. H; J! N) Z/ W; p- 注意:这里的初始发行量需与部署脚本中的 initialSupply 完全一致(单位为 Wei); X/ D' ^3 B. W7 B8 P$ e0 x
八、在钱包中查看代币
; A; K/ t( S" l e- A u- 打开 MetaMask,选择对应网络(Sepolia 或主网)/ F# c: C6 Q& Z4 ?7 F l2 N
- 选择“导入代币”,粘贴合约地址,确认代币符号与小数位(18)
' G' f1 i: i) v9 \' ?3 _8 F" o- 即可在钱包中看到初始发行的代币余额(在部署账户下)% j. g" w$ u1 U: R, _
九、部署到主网(可选)5 L# l: q% \- ~( j
- 确保 .env 中配置 MAINNET_RPC_URL、PRIVATE_KEY,且钱包内有主网 ETH# ~- f/ o; a3 t1 V
- 命令:npx hardhat run scripts/ --network mainnet
F$ T% K* d/ Q. S# g- 可用 Etherscan 校验:npx hardhat verify --network mainnet 合约地址 初始发行量(Wei)
0 Z w3 `4 Z2 c/ U5 e" P9 f十、常见问题与排查
Q* \1 e' U, [4 ~ D- 部署报“insufficient funds for gas”:2 ^& H) l. v. o8 J ?
- 账户没有足够 ETH(测试网/主网),先充值再部署% d; V9 V$ }( p6 [. u) B; ~1 A! `0 @
- Ethers 版本导致的方法差异:" N4 ] B% V0 G) _6 v
- 本教程基于 ethers v6(Hardhat Toolbox 默认),使用
7 K# f. K! m& w H2 i9 b9 l- 私钥与 .env:
9 E3 c* i3 i/ w- f! `5 X; {- PRIVATE_KEY 必须以 0x 开头,无引号与空格) b o2 S" ~, h' V
- 确保 .gitignore 排除 .env,切勿泄露私钥
9 i! ]5 r% k5 }7 A' z8 C0 g. {9 ^- 构造参数不一致导致校验失败:- v# {# E. v4 `
- verify 命令的初始发行量(Wei)必须与部署时完全一致
/ |- ^4 m4 x" D0 n% _3 H8 y! ?到这里,你已经完成了一个标准 ERC‑20 代币从“编写 → 编译 → 部署 →(可选)校验 → 钱包查看”的完整最小流程。若你需要把名称/符号/小数位做成可配置,或加入可增发/销毁、暂停等扩展权限。
/ ~: [% G" U) i- n! H7 j下面是一键发币的工具;
- H; L" s5 C1 {) i这个星辰发币是目前最好用的一个一键发币的工具( ),不需要授权,代码干净;最推荐。0 i" V1 H' z2 z6 u0 s
这个dajgh也还可以但是需要授权( ),授权会带来一些安全方面的风险。- I/ ]8 b$ X U- `7 h
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 311 小时
本月在线: 14 小时
|
|
|
这玩意儿整起来还挺麻烦啊,不过一键发行工具倒是省事,懒人直接冲就完事了 |
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 15 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 18 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 34 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 290 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 9 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 48 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 1 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 46 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 1 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 275 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 1 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 3 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 9 小时
本月在线: 0 分钟
|
|
|
方法最后一段话觉得是很有道理的,但是在我面前就难以实现,毕竟运程太差了。 |
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 142 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 11 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|