Pigeon:简化跨链应用开发的测试利器
项目介绍
Pigeon 是一个开源的模块化测试工具包,专为使用任意消息桥(AMB)的跨链应用开发而设计。它能够模拟接近主网的跨链交易,帮助开发者在分叉的主网上运行跨链单元测试,并模拟AMB的链下基础设施。Pigeon与Foundry测试框架兼容,旨在简化依赖跨链通信的应用程序的测试流程。
项目技术分析
Pigeon的核心功能包括:
- 模拟跨链交易:能够在接近主网的环境中模拟跨链交易,确保测试环境的真实性。
- 跨链单元测试:支持在分叉的主网上运行跨链单元测试,帮助开发者验证跨链应用的功能和安全性。
- 模拟链下基础设施:能够模拟AMB的链下基础设施,简化跨链应用的单元测试流程。
Pigeon的技术栈主要包括Solidity(版本^0.8.21)和Foundry测试框架。它通过模拟AMB的链下基础设施,帮助开发者更轻松地编写跨链应用的单元测试。
项目及技术应用场景
Pigeon适用于以下场景:
- 跨链应用开发:开发者可以使用Pigeon在接近主网的环境中测试跨链应用,确保应用在实际部署时的稳定性和安全性。
- 单元测试优化:通过模拟AMB的链下基础设施,Pigeon简化了跨链应用的单元测试流程,提高了测试效率。
- 安全验证:Pigeon支持在分叉的主网上运行测试,帮助开发者快速验证发送者认证等与跨链应用开发相关的安全假设。
项目特点
- 模块化设计:Pigeon采用模块化设计,易于扩展和维护,开发者可以根据需要集成更多的跨链消息桥。
- 真实环境模拟:能够在接近主网的环境中模拟跨链交易,确保测试环境的真实性和可靠性。
- 简化测试流程:通过模拟AMB的链下基础设施,Pigeon简化了跨链应用的单元测试流程,提高了开发效率。
- 开源社区支持:Pigeon是一个开源项目,欢迎所有开发者贡献代码,共同维护和扩展其功能。
如何开始使用
安装
使用Foundry进行安装:
$ forge install exp-table/pigeon
将pigeon/=lib/pigeon/
添加到remappings.txt
中。
使用示例
安装完成后,您可以通过导入Pigeon的辅助合约到您的测试文件中来使用它。详细的文档正在编写中,您可以参考测试文件中的示例代码。
例如,使用Hyperlane进行跨链测试:
vm.recordLogs();
_someCrossChainFunctionInYourContract(L2_DOMAIN, TypeCasts.addressToBytes32(address(target)));
Vm.Log[] memory logs = vm.getRecordedLogs();
hyperlaneHelper.help(L1_HLMailbox, L2_HLMailbox, L2_FORK_ID, logs);
本地开发
欢迎所有开发者贡献代码,共同维护和扩展Pigeon的功能。您可以通过以下步骤参与开发:
-
克隆仓库:
$ git clone https://github.com/exp-table/pigeon
-
添加环境变量:
在根目录下创建
.env
文件,并添加以下内容:ETH_MAINNET_RPC_URL= POLYGON_MAINNET_RPC_URL= # 可选(true/false) ENABLE_ESTIMATES=
-
安装依赖:
$ npm install $ npm run compile
-
提交PR:
提交PR到
main
分支,并在PR描述中详细说明您的更改。
结语
Pigeon是一个强大的工具,能够帮助跨链应用开发者简化测试流程,提高开发效率。无论您是跨链应用的开发者,还是对跨链技术感兴趣的研究者,Pigeon都将是您不可或缺的助手。立即加入Pigeon的社区,共同推动跨链技术的发展!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考