# web3j-study **Repository Path**: vsiryxm/web3j-study ## Basic Information - **Project Name**: web3j-study - **Description**: spring boot + web3j 练习DEMO - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2025-10-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # web3j-demo ## 项目简介 基于 Spring Boot + web3j + MyBatis-Plus 的以太坊钱包与合约管理系统,实现链上数据监听、交易与事件落库、RESTful API、分区表优化、Swagger 文档、定时任务等功能,适配 Sepolia 测试网。 ## 技术栈 - Spring Boot 3.3.x - web3j 4.14.0 - MyBatis-Plus 3.5.5 - Druid 1.2.20 - MySQL 8.3.0 - Swagger/OpenAPI 3.0 - xxl-job 2.4.2 - fastjson2 2.0.51 ## 部署步骤 1. 克隆项目并进入目录: ```sh git clone https://gitee.com/vsiryxm/web3j-study.git cd web3j-study/web3j-demo ``` 2. 配置数据库与区块链节点参数,修改 `src/main/resources/application.properties`。 3. 创建钱包与配置钱包 - 创建钱包账户(首次使用需执行): ```sh mvn spring-boot:run -Dspring-boot.run.arguments=create-wallet ``` 钱包文件会生成在 `wallet/` 目录下,助记词和私钥请妥善保存。 - 配置钱包信息: 请在 `.env` 文件中配置钱包私钥(仅测试环境中使用)、合约地址等参数,参考 `.env.example` 4. 编译项目: ```sh mvn clean compile ``` 5. 启动服务(开发环境): ```sh mvn spring-boot:run ``` 或打包后运行: ```sh mvn clean package -DskipTests java -jar target/web3j-demo-*.jar ``` 6. 访问接口文档: - http://localhost:8080/swagger-ui.html ## 合约部署与Java类生成 1. 部署合约: 参考 [web3j-contracts/README.md](./web3j-contracts/README.md) 2. 使用 web3j-CLI 生成 Java 合约类: - 安装 web3j-CLI(需 >= Java 17 环境): ```sh # 安装文档:https://docs.web3j.io/latest/command_line_tools/ curl -L get.web3j.io | sh && source ~/.web3j/source.sh # 或 去这里下载:https://github.com/LFDT-web3j/web3j-cli/releases/download/v1.7.0/web3j-1.7.0.tar ``` - 生成 Java 类(以 MyToken.json 为例): ```sh jq -r .bytecode out/MyERC20.sol/MyERC20.json > out/MyERC20.sol/MyERC20.bin jq .abi out/MyERC20.sol/MyERC20.json > out/MyERC20.sol/MyERC20.abi.json web3j generate solidity \ -a ./web3j-contracts/out/MyERC20.sol/MyERC20.abi.json \ -b ./web3j-contracts/out/MyERC20.sol/MyERC20.bin \ -o ./web3j-demo/src/main/java \ -p com.example.contract ``` - 生成的 Java 文件可直接用于项目开发。