Skip to content

0xawen/go-and-solidity

Repository files navigation

go and solidity

目标:使用go开发与测试solidity合约。(已支持foundry工具)

起因

hardhat 是目前最流行的solidity开发测试框架。但是hardhat需要使用到 ts/js来测试合约。

而我一直对 ts/js 不感冒,虽然可以使用起来也没有问题,但是感觉使用go来开发测试合约更加的顺手。

于是,就有了这个项目go-and-solidity。 同时,也巩固一下go知识和solidity知识。

项目结构

  • artifacts-go:存放abigen生成的go文件
  • bin: 存放solidity编译工具与abi工具
  • build:存放solidity编译后的abi与bin文件
  • contracts:存放solidity合约
  • docs:存放文档
  • lib: 第三方合约库,使用git submodule管理
  • script:存放部署合约的go脚本或者foundry测试脚本
  • test:存放solidity测试文件
    • foundry-test foundry 测试文件
    • go-test go 测试文件

更多相关文档说明存在docs目录下, 请移步查看。

更新计划

内容有点多,更新比较慢。

使用说明

  1. 编译工具安装,查看solc/abigen
  2. 使用go去测试合约,详细过程查看:实践说明文档

Foundry 工具的支持

foundry.toml 的 src 设置为 contracts。

forge install foundry-rs/forge-std --no-commit

foundry 文档: https://github.com/foundry-rs/forge-std/tree/master

其他

本仓库参考的教程有:

  1. https://solidity-by-example.org/
  2. https://github.com/AmazingAng/WTF-Solidity

About

本仓库重点是使用go测试开发solidity合约,当然也支持foundry工具。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published