Rust、Loco和Alloy的入门学习项目,主要学习Loco框架的使用和web3-rust相关库的使用。
https://loco.rs/docs/getting-started/guide/
前十个commit是loco的入门学习,主要由loco命令生成,后面的六commit是Alloy的入门学习,涉及合约调用,链上交易订阅,和交易数据解析。
-
安装rust,loco和相关依赖
-
docker 启动数据库依赖
docker run -d -p 5432:5432 \
-e POSTGRES_USER=loco \
-e POSTGRES_DB=myapp_development \
-e POSTGRES_PASSWORD="loco" \
postgres:15.3-alpine
docker run -p 6379:6379 -d redis redis-server
-
配置.env文件, 参考.env.example
⚠️ 这里必须Alchemy的API_KEY,订阅交易时使用的是alchemy_pendingTransactions
-
启动loco
cargo loco start
$ curl localhost:5150/guide
hello
- loco的其他命令
$ curl -X POST -H "Content-Type: application/json" -d '{
"title": "Your Title",
"content": "Your Content xxx"
}' localhost:5150/articles
{"created_at":"...","updated_at":"...","id":2,"title":"Your Title","content":"Your Content xxx"}
$ curl localhost:5150/articles
[{"created_at":"...","updated_at":"...","id":1,"title":"how to build apps in 3 steps","content":"use Loco: https://loco.rs"},{"created_at":"...","updated_at":"...","id":2,"title":"Your Title","content":"Your Content xxx"}
- 测试订阅功能
使用web3-rs
库的封装,订阅交易
cargo loco task tx_subscribe
- 测试合约调用
使用
alloy-rs
库的封装,调用合约
cargo loco task Contract
- 测试交易订阅以及数据解析
使用
tokio_tungstenite
库订阅交易,使用alloy
解析数据 会打印 uniswap的UniversalRouter
的execute
交易的信息
cargo loco task alloy_subscribe
- web3-rs, ehters-rs 库被标注已经deprecated,目前alloy-rs文档相对全面
- 1. 对于input的解析,应该有简洁的直接通过abi解析任意调用函数的方法,而不用对单个函数进行分类