feat: 重命名项目为 PolyHermes 并添加下单签名前日志

- 将所有 polymarket-bot 相关名称改为 PolyHermes
  - 容器名称: polyhermes, polyhermes-mysql, polyhermes-backend
  - 数据库名称: polyhermes
  - 应用名称: polyhermes-backend, polyhermes-frontend
  - 网络名称: polyhermes-network
  - 更新所有配置文件和文档

- 在 OrderSigningService 中添加下单签名前的详细日志输出
  - 输出订单方向、价格、数量、地址、金额等所有参数
  - 便于调试和排查下单问题
This commit is contained in:
WrBug
2025-12-03 04:01:45 +08:00
parent 950acfeb04
commit 58cc096a77
12 changed files with 62 additions and 42 deletions
+2 -2
View File
@@ -47,7 +47,7 @@
## 📦 项目结构
```
polymarket-bot/
polyhermes/
├── backend/ # 后端服务
│ ├── src/main/kotlin/ # Kotlin 源代码
│ │ ├── api/ # Polymarket API 接口定义
@@ -96,7 +96,7 @@ cd PolyHermes
创建 MySQL 数据库:
```sql
CREATE DATABASE polymarket_bot CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE polyhermes CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
3. **启动后端**
+3 -3
View File
@@ -12,8 +12,8 @@ YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 配置
APP_NAME="polymarket-bot-backend"
JAR_NAME="polymarket-bot-backend-1.0.0.jar"
APP_NAME="polyhermes-backend"
JAR_NAME="polyhermes-backend-1.0.0.jar"
DEPLOY_DIR="./deploy"
PROFILE="${SPRING_PROFILES_ACTIVE:-prod}"
@@ -131,7 +131,7 @@ deploy_docker() {
warn ".env 文件不存在,创建示例文件..."
cat > .env <<EOF
# 数据库配置
DB_URL=jdbc:mysql://mysql:3306/polymarket_bot?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_USERNAME=root
DB_PASSWORD=your_password_here
+7 -7
View File
@@ -5,12 +5,12 @@ services:
build:
context: .
dockerfile: Dockerfile
container_name: polymarket-bot-backend
container_name: polyhermes-backend
ports:
- "${SERVER_PORT:-8000}:8000"
environment:
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polymarket_bot?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4}
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4}
- DB_USERNAME=${DB_USERNAME:-root}
- DB_PASSWORD=${DB_PASSWORD:-}
- SERVER_PORT=8000
@@ -22,16 +22,16 @@ services:
condition: service_healthy
restart: unless-stopped
networks:
- polymarket-network
- polyhermes-network
mysql:
image: mysql:8.2
container_name: polymarket-bot-mysql
container_name: polyhermes-mysql
ports:
- "${MYSQL_PORT:-3306}:3306"
environment:
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword}
- MYSQL_DATABASE=polymarket_bot
- MYSQL_DATABASE=polyhermes
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
- MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
volumes:
@@ -43,12 +43,12 @@ services:
retries: 5
restart: unless-stopped
networks:
- polymarket-network
- polyhermes-network
volumes:
mysql-data:
networks:
polymarket-network:
polyhermes-network:
driver: bridge
+1 -1
View File
@@ -1,2 +1,2 @@
rootProject.name = "polymarket-bot-backend"
rootProject.name = "polyhermes-backend"
@@ -19,7 +19,7 @@ class HealthController {
return ResponseEntity.ok(mapOf(
"status" to "UP",
"timestamp" to System.currentTimeMillis(),
"service" to "polymarket-bot-backend"
"service" to "polyhermes-backend"
))
}
}
@@ -168,6 +168,26 @@ class OrderSigningService {
// 5. 确保 maker 地址也是小写格式
val makerAddressLower = makerAddress.lowercase()
// 打印签名前的订单参数
logger.info("========== 订单签名前参数 ==========")
logger.info("订单方向: $side")
logger.info("价格: $price")
logger.info("数量: $size")
logger.info("Token ID: $tokenId")
logger.info("Maker 地址: $makerAddressLower")
logger.info("Signer 地址: $signerAddress")
logger.info("Taker 地址: $taker")
logger.info("Maker Amount (wei): ${amounts.makerAmount}")
logger.info("Taker Amount (wei): ${amounts.takerAmount}")
logger.info("Salt: $salt")
logger.info("Expiration: $expiration")
logger.info("Nonce: $nonce")
logger.info("Fee Rate BPS: $feeRateBps")
logger.info("Signature Type: $signatureType")
logger.info("Exchange Contract: $EXCHANGE_CONTRACT")
logger.info("Chain ID: $CHAIN_ID")
logger.info("====================================")
// 6. 构建订单数据并签名
val signature = signOrder(
privateKey = privateKey,
@@ -1,8 +1,8 @@
# 应用配置
spring.application.name=polymarket-bot-backend
spring.application.name=polyhermes-backend
# 数据源配置(默认配置,可通过环境变量覆盖)
spring.datasource.url=${DB_URL:jdbc:mysql://localhost:3306/polymarket_bot?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true}
spring.datasource.url=${DB_URL:jdbc:mysql://localhost:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true}
spring.datasource.username=${DB_USERNAME:root}
spring.datasource.password=${DB_PASSWORD:11111111}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
@@ -31,7 +31,7 @@ spring.profiles.active=${SPRING_PROFILES_ACTIVE:dev}
# 日志配置
logging.level.root=INFO
logging.level.com.wrbug.polymarketbot=DEBUG
logging.level.com.wrbug.polyhermes=DEBUG
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
# Polymarket API 配置
+1 -1
View File
@@ -45,7 +45,7 @@ create_env_file() {
warn ".env 文件不存在,创建示例文件..."
cat > .env <<EOF
# 数据库配置
DB_URL=jdbc:mysql://mysql:3306/polymarket_bot?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_USERNAME=root
DB_PASSWORD=your_password_here
+7 -7
View File
@@ -5,12 +5,12 @@ services:
build:
context: .
dockerfile: Dockerfile
container_name: polymarket-bot
container_name: polyhermes
ports:
- "${SERVER_PORT:-80}:80"
environment:
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polymarket_bot?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4}
- DB_URL=${DB_URL:-jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4}
- DB_USERNAME=${DB_USERNAME:-root}
- DB_PASSWORD=${DB_PASSWORD:-}
- SERVER_PORT=8000
@@ -22,16 +22,16 @@ services:
condition: service_healthy
restart: unless-stopped
networks:
- polymarket-network
- polyhermes-network
mysql:
image: mysql:8.2
container_name: polymarket-bot-mysql
container_name: polyhermes-mysql
ports:
- "${MYSQL_PORT:-3307}:3306"
environment:
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword}
- MYSQL_DATABASE=polymarket_bot
- MYSQL_DATABASE=polyhermes
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
- MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
volumes:
@@ -43,12 +43,12 @@ services:
retries: 5
restart: unless-stopped
networks:
- polymarket-network
- polyhermes-network
volumes:
mysql-data:
networks:
polymarket-network:
polyhermes-network:
driver: bridge
+14 -14
View File
@@ -41,7 +41,7 @@
```bash
# 创建 .env 文件
cat > .env <<EOF
DB_URL=jdbc:mysql://mysql:3306/polymarket_bot?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_USERNAME=root
DB_PASSWORD=your_password_here
SPRING_PROFILES_ACTIVE=prod
@@ -107,7 +107,7 @@ cd backend
./gradlew clean bootJar
```
构建产物位于 `build/libs/polymarket-bot-backend-1.0.0.jar`
构建产物位于 `build/libs/polyhermes-backend-1.0.0.jar`
2. **使用部署脚本(推荐)**
@@ -129,28 +129,28 @@ cd backend
```bash
# 开发环境
java -jar build/libs/polymarket-bot-backend-1.0.0.jar --spring.profiles.active=dev
java -jar build/libs/polyhermes-backend-1.0.0.jar --spring.profiles.active=dev
# 生产环境
java -jar build/libs/polymarket-bot-backend-1.0.0.jar --spring.profiles.active=prod
java -jar build/libs/polyhermes-backend-1.0.0.jar --spring.profiles.active=prod
```
4. **使用 systemd 管理(Linux**
```bash
# 复制服务文件
sudo cp deploy/polymarket-bot-backend.service /etc/systemd/system/
sudo cp deploy/polyhermes-backend.service /etc/systemd/system/
# 编辑服务文件,修改路径和用户
sudo nano /etc/systemd/system/polymarket-bot-backend.service
sudo nano /etc/systemd/system/polyhermes-backend.service
# 启动服务
sudo systemctl daemon-reload
sudo systemctl enable polymarket-bot-backend
sudo systemctl start polymarket-bot-backend
sudo systemctl enable polyhermes-backend
sudo systemctl start polyhermes-backend
# 查看日志
sudo journalctl -u polymarket-bot-backend -f
sudo journalctl -u polyhermes-backend -f
```
### Docker 部署
@@ -180,7 +180,7 @@ cd backend
```bash
# 创建 .env 文件
cat > .env <<EOF
DB_URL=jdbc:mysql://mysql:3306/polymarket_bot?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_URL=jdbc:mysql://mysql:3306/polyhermes?useSSL=false&serverTimezone=UTC&characterEncoding=utf8mb4
DB_USERNAME=root
DB_PASSWORD=your_password_here
SPRING_PROFILES_ACTIVE=prod
@@ -203,21 +203,21 @@ docker-compose down
3. **仅构建镜像**
```bash
docker build -t polymarket-bot-backend:latest .
docker build -t polyhermes-backend:latest .
```
4. **运行容器**
```bash
docker run -d \
--name polymarket-bot-backend \
--name polyhermes-backend \
-p 8000:8000 \
-e SPRING_PROFILES_ACTIVE=prod \
-e DB_URL=jdbc:mysql://host.docker.internal:3306/polymarket_bot?useSSL=false \
-e DB_URL=jdbc:mysql://host.docker.internal:3306/polyhermes?useSSL=false \
-e DB_USERNAME=root \
-e DB_PASSWORD=your_password \
-e JWT_SECRET=your-jwt-secret \
polymarket-bot-backend:latest
polyhermes-backend:latest
```
## 前端部署
+2 -2
View File
@@ -1,11 +1,11 @@
{
"name": "polymarket-bot-frontend",
"name": "polyhermes-frontend",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "polymarket-bot-frontend",
"name": "polyhermes-frontend",
"version": "1.0.0",
"dependencies": {
"antd": "^5.12.0",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "polymarket-bot-frontend",
"name": "polyhermes-frontend",
"version": "1.0.0",
"type": "module",
"scripts": {