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/ # 后端服务
|
├── backend/ # 后端服务
|
||||||
│ ├── src/main/kotlin/ # Kotlin 源代码
|
│ ├── src/main/kotlin/ # Kotlin 源代码
|
||||||
│ │ ├── api/ # Polymarket API 接口定义
|
│ │ ├── api/ # Polymarket API 接口定义
|
||||||
@@ -96,7 +96,7 @@ cd PolyHermes
|
|||||||
创建 MySQL 数据库:
|
创建 MySQL 数据库:
|
||||||
|
|
||||||
```sql
|
```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
-3
@@ -12,8 +12,8 @@ YELLOW='\033[1;33m'
|
|||||||
NC='\033[0m' # No Color
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
# 配置
|
# 配置
|
||||||
APP_NAME="polymarket-bot-backend"
|
APP_NAME="polyhermes-backend"
|
||||||
JAR_NAME="polymarket-bot-backend-1.0.0.jar"
|
JAR_NAME="polyhermes-backend-1.0.0.jar"
|
||||||
DEPLOY_DIR="./deploy"
|
DEPLOY_DIR="./deploy"
|
||||||
PROFILE="${SPRING_PROFILES_ACTIVE:-prod}"
|
PROFILE="${SPRING_PROFILES_ACTIVE:-prod}"
|
||||||
|
|
||||||
@@ -131,7 +131,7 @@ deploy_docker() {
|
|||||||
warn ".env 文件不存在,创建示例文件..."
|
warn ".env 文件不存在,创建示例文件..."
|
||||||
cat > .env <<EOF
|
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_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
|
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: polymarket-bot-backend
|
container_name: polyhermes-backend
|
||||||
ports:
|
ports:
|
||||||
- "${SERVER_PORT:-8000}:8000"
|
- "${SERVER_PORT:-8000}:8000"
|
||||||
environment:
|
environment:
|
||||||
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
|
- 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_USERNAME=${DB_USERNAME:-root}
|
||||||
- DB_PASSWORD=${DB_PASSWORD:-}
|
- DB_PASSWORD=${DB_PASSWORD:-}
|
||||||
- SERVER_PORT=8000
|
- SERVER_PORT=8000
|
||||||
@@ -22,16 +22,16 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- polymarket-network
|
- polyhermes-network
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:8.2
|
image: mysql:8.2
|
||||||
container_name: polymarket-bot-mysql
|
container_name: polyhermes-mysql
|
||||||
ports:
|
ports:
|
||||||
- "${MYSQL_PORT:-3306}:3306"
|
- "${MYSQL_PORT:-3306}:3306"
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword}
|
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword}
|
||||||
- MYSQL_DATABASE=polymarket_bot
|
- MYSQL_DATABASE=polyhermes
|
||||||
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
|
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
|
||||||
- MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
|
- MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
|
||||||
volumes:
|
volumes:
|
||||||
@@ -43,12 +43,12 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- polymarket-network
|
- polyhermes-network
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mysql-data:
|
mysql-data:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
polymarket-network:
|
polyhermes-network:
|
||||||
driver: bridge
|
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(
|
return ResponseEntity.ok(mapOf(
|
||||||
"status" to "UP",
|
"status" to "UP",
|
||||||
"timestamp" to System.currentTimeMillis(),
|
"timestamp" to System.currentTimeMillis(),
|
||||||
"service" to "polymarket-bot-backend"
|
"service" to "polyhermes-backend"
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,26 @@ class OrderSigningService {
|
|||||||
// 5. 确保 maker 地址也是小写格式
|
// 5. 确保 maker 地址也是小写格式
|
||||||
val makerAddressLower = makerAddress.lowercase()
|
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. 构建订单数据并签名
|
// 6. 构建订单数据并签名
|
||||||
val signature = signOrder(
|
val signature = signOrder(
|
||||||
privateKey = privateKey,
|
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.username=${DB_USERNAME:root}
|
||||||
spring.datasource.password=${DB_PASSWORD:11111111}
|
spring.datasource.password=${DB_PASSWORD:11111111}
|
||||||
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
|
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.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
|
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
|
||||||
|
|
||||||
# Polymarket API 配置
|
# Polymarket API 配置
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ create_env_file() {
|
|||||||
warn ".env 文件不存在,创建示例文件..."
|
warn ".env 文件不存在,创建示例文件..."
|
||||||
cat > .env <<EOF
|
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_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -5,12 +5,12 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: polymarket-bot
|
container_name: polyhermes
|
||||||
ports:
|
ports:
|
||||||
- "${SERVER_PORT:-80}:80"
|
- "${SERVER_PORT:-80}:80"
|
||||||
environment:
|
environment:
|
||||||
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-prod}
|
- 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_USERNAME=${DB_USERNAME:-root}
|
||||||
- DB_PASSWORD=${DB_PASSWORD:-}
|
- DB_PASSWORD=${DB_PASSWORD:-}
|
||||||
- SERVER_PORT=8000
|
- SERVER_PORT=8000
|
||||||
@@ -22,16 +22,16 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- polymarket-network
|
- polyhermes-network
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:8.2
|
image: mysql:8.2
|
||||||
container_name: polymarket-bot-mysql
|
container_name: polyhermes-mysql
|
||||||
ports:
|
ports:
|
||||||
- "${MYSQL_PORT:-3307}:3306"
|
- "${MYSQL_PORT:-3307}:3306"
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword}
|
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-rootpassword}
|
||||||
- MYSQL_DATABASE=polymarket_bot
|
- MYSQL_DATABASE=polyhermes
|
||||||
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
|
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
|
||||||
- MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
|
- MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
|
||||||
volumes:
|
volumes:
|
||||||
@@ -43,12 +43,12 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- polymarket-network
|
- polyhermes-network
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mysql-data:
|
mysql-data:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
polymarket-network:
|
polyhermes-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
||||||
|
|||||||
+14
-14
@@ -41,7 +41,7 @@
|
|||||||
```bash
|
```bash
|
||||||
# 创建 .env 文件
|
# 创建 .env 文件
|
||||||
cat > .env <<EOF
|
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_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
SPRING_PROFILES_ACTIVE=prod
|
SPRING_PROFILES_ACTIVE=prod
|
||||||
@@ -107,7 +107,7 @@ cd backend
|
|||||||
./gradlew clean bootJar
|
./gradlew clean bootJar
|
||||||
```
|
```
|
||||||
|
|
||||||
构建产物位于 `build/libs/polymarket-bot-backend-1.0.0.jar`
|
构建产物位于 `build/libs/polyhermes-backend-1.0.0.jar`
|
||||||
|
|
||||||
2. **使用部署脚本(推荐)**
|
2. **使用部署脚本(推荐)**
|
||||||
|
|
||||||
@@ -129,28 +129,28 @@ cd backend
|
|||||||
|
|
||||||
```bash
|
```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)**
|
4. **使用 systemd 管理(Linux)**
|
||||||
|
|
||||||
```bash
|
```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 daemon-reload
|
||||||
sudo systemctl enable polymarket-bot-backend
|
sudo systemctl enable polyhermes-backend
|
||||||
sudo systemctl start polymarket-bot-backend
|
sudo systemctl start polyhermes-backend
|
||||||
|
|
||||||
# 查看日志
|
# 查看日志
|
||||||
sudo journalctl -u polymarket-bot-backend -f
|
sudo journalctl -u polyhermes-backend -f
|
||||||
```
|
```
|
||||||
|
|
||||||
### Docker 部署
|
### Docker 部署
|
||||||
@@ -180,7 +180,7 @@ cd backend
|
|||||||
```bash
|
```bash
|
||||||
# 创建 .env 文件
|
# 创建 .env 文件
|
||||||
cat > .env <<EOF
|
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_USERNAME=root
|
||||||
DB_PASSWORD=your_password_here
|
DB_PASSWORD=your_password_here
|
||||||
SPRING_PROFILES_ACTIVE=prod
|
SPRING_PROFILES_ACTIVE=prod
|
||||||
@@ -203,21 +203,21 @@ docker-compose down
|
|||||||
3. **仅构建镜像**
|
3. **仅构建镜像**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker build -t polymarket-bot-backend:latest .
|
docker build -t polyhermes-backend:latest .
|
||||||
```
|
```
|
||||||
|
|
||||||
4. **运行容器**
|
4. **运行容器**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--name polymarket-bot-backend \
|
--name polyhermes-backend \
|
||||||
-p 8000:8000 \
|
-p 8000:8000 \
|
||||||
-e SPRING_PROFILES_ACTIVE=prod \
|
-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_USERNAME=root \
|
||||||
-e DB_PASSWORD=your_password \
|
-e DB_PASSWORD=your_password \
|
||||||
-e JWT_SECRET=your-jwt-secret \
|
-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",
|
"version": "1.0.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "polymarket-bot-frontend",
|
"name": "polyhermes-frontend",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"antd": "^5.12.0",
|
"antd": "^5.12.0",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "polymarket-bot-frontend",
|
"name": "polyhermes-frontend",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user