feat: 重命名项目为 PolyHermes 并添加下单签名前日志
- 将所有 polymarket-bot 相关名称改为 PolyHermes - 容器名称: polyhermes, polyhermes-mysql, polyhermes-backend - 数据库名称: polyhermes - 应用名称: polyhermes-backend, polyhermes-frontend - 网络名称: polyhermes-network - 更新所有配置文件和文档 - 在 OrderSigningService 中添加下单签名前的详细日志输出 - 输出订单方向、价格、数量、地址、金额等所有参数 - 便于调试和排查下单问题
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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,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 配置
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
```
|
||||
|
||||
## 前端部署
|
||||
|
||||
Generated
+2
-2
@@ -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,5 +1,5 @@
|
||||
{
|
||||
"name": "polymarket-bot-frontend",
|
||||
"name": "polyhermes-frontend",
|
||||
"version": "1.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
Reference in New Issue
Block a user