一个用于管理房产系列合约创建和数据库更新的自动化脚本。
- 🔗 连接PostgreSQL数据库读取最新房产记录
- 🏠 自动创建房产系列智能合约
- 📝 更新数据库中的合约地址信息
- ⚡ 支持本地Anvil和Sepolia测试网
- 🛡️ 完整的错误处理和验证机制
- PostgreSQL客户端 (
psql) - Foundry工具链 (
cast) - Bash (版本 4.0+)
# 安装PostgreSQL客户端
sudo apt-get install postgresql-client
# 安装Foundry
curl -L https://foundry.paradigm.xyz | bash
foundryup复制配置示例文件:
cp .env.example .env编辑 .env 文件,设置以下必要参数:
# RPC节点地址
RPC_URL=http://localhost:8545 # 或 Sepolia测试网地址
# 系列工厂合约地址(必须)
SERIES_FACTORY_ADDR=0x你的工厂合约地址
# 管理员私钥(必须)
ADMIN_PRIVATE_KEY=0x你的私钥确保PostgreSQL中存在 properties 表,包含以下字段:
id(主键)owner(用于存储合约地址)- 其他业务字段...
# 方法1: 使用.env文件
source .env
# 方法2: 直接设置
export RPC_URL="http://localhost:8545"
export SERIES_FACTORY_ADDR="0x你的工厂合约地址"
export ADMIN_PRIVATE_KEY="0x你的私钥"# 给脚本添加执行权限
chmod +x property_series_manager.sh
# 运行脚本
./property_series_manager.sh- 依赖检查 - 验证必要工具是否安装
- 环境变量验证 - 检查必要的配置参数
- 数据库查询 - 读取properties表最新记录
- Token信息生成 - 自动生成Token名称和符号
- 合约交互 - 检查并创建系列合约
- 数据库更新 - 将合约地址写入owner字段
ℹ️ 启动 Property Series Manager...
==========================================
Property Series Manager 配置信息
==========================================
RPC_URL: http://localhost:8545
SERIES_FACTORY_ADDR: 0x1234567890123456789012345678901234567890
DATABASE_URL: postgres://neondb_owner:npg_6T8BdQKZFqME@ep-with...
==========================================
✅ 依赖检查完成
✅ 环境变量检查完成
✅ 成功读取properties记录,PROPERTY_ID = 123
ℹ️ TOKEN_NAME = RenToken123
ℹ️ TOKEN_SYMBOL = RT123
ℹ️ 检查系列合约是否存在...
ℹ️ 系列不存在,正在创建新系列...
✅ 系列创建交易已发送: 0xabc123...
✅ 新系列合约地址: 0xdef456...
✅ 数据库更新成功,owner字段已设置为: 0xdef456...
✅ 所有操作完成!
==========================================
执行结果:
PROPERTY_ID: 123
TOKEN_NAME: RenToken123
TOKEN_SYMBOL: RT123
SERIES_ADDR: 0xdef456...
==========================================
脚本包含完整的错误处理机制:
- 依赖工具检查
- 数据库连接验证
- 合约调用失败处理
- 环境变量验证
- 私钥信息敏感,请妥善保管
- 不要将包含私钥的
.env文件提交到版本控制系统 - 建议在测试环境中先验证脚本功能
-
数据库连接失败
- 检查网络连接
- 验证数据库URL格式
- 确认数据库权限
-
合约调用失败
- 检查RPC节点连接
- 验证合约地址正确性
- 确认私钥有足够的Gas费用
-
依赖工具未找到
- 重新安装PostgreSQL客户端
- 重新安装Foundry工具链
- 检查PATH环境变量
MIT License