W3

智能合约 IDE

左边写代码,右边实时告诉你哪里会编译不过、哪里有已知的安全反模式, 以及这个合约最终长什么样(函数、事件、错误一览)。 两种用法:照着模板改, 或者做练习——练习里代码留着 TODO,等你自己填。

关于「静态校验」的边界:它检查的是编译必需的结构(pragma、括号、可见性、事件定义)与有共识的安全反模式 (tx.origin 授权、transfer 转账、链上随机数)。它不是编译器,也不做逻辑漏洞分析——「没报错」和「代码是对的」是两件事, 真正的验证靠 forge test 与外部审计。
载入内容
6 个可直接编译的参考实现
hello.solSolidity
本地校验只覆盖编译必需项与已知安全反模式,不能替代 solc / Foundry 的真实编译

静态校验结果

0 错误0 警告0 建议

没有发现结构性问题或已知反模式。这不代表代码安全——逻辑漏洞只能靠测试与审计发现。

部署后怎么验证

  1. 调用 greet() 应返回 "Hello Web3"
  2. 调用 setGreeting("你好") 后交易成功,事件里有你的地址
  3. 再读 greet(),值已更新;lastWriter 等于你的地址

依赖:

合约概览

contractHelloWeb3
  • greet()external view
  • setGreeting(value string)external
事件:GreetingChanged
从这里到真实部署之间还差什么:本地跑一次 forge test 把测试写完,用 anvil 起本地链验证一遍,再部署到 Sepolia 测试网, 确认 Etherscan 能验证源码,最后才考虑主网。 跳过中间任何一步,代价都会以资金形式出现。
推荐的下一步:把导出或复制的合约丢进 Remix 编译一次,看 ABI 与自己预期是否一致; 然后在本地用 Foundry 写测试(合约工程化指南的第二阶段覆盖了测试体系),最后才部署到测试网。 每个合约模板的右侧都列出了「部署后怎么验证」,那是你写测试用例的起点。