这是一个集成化工具,用于从Notion数据库获取已审核的交易信息,并自动创建Safe多签钱包的批量转账交易。本工具支持USDT转账交易的批量处理,大大提高了多签钱包管理的效率。
- Notion集成: 直接从Notion数据库获取已审核的交易信息
- 批量交易处理: 支持多笔USDT转账交易的批量创建
- MultiSendCallOnly: 利用Safe的MultiSendCallOnly合约进行高效的批量操作
- 离链签名: 支持交易的离链签名,提高交易处理的灵活性
- 智能日志系统: 优化的日志输出,减少冗余信息,提高可读性
项目由以下主要模块组成:
- Notion模块: 负责与Notion API交互,获取已审核的交易数据
- Safe模块: 处理Safe多签钱包的交易创建、签名和提交
- Utils工具: 包含日志系统等辅助功能
本项目实现了一个智能的日志系统,具有以下特点:
- 避免重复信息: 相同的日志消息只会输出一次,减少终端噪音
- 分级日志: 支持DEBUG、INFO、WARNING、ERROR四种日志级别
- 格式化输出: 支持简单模式和详细模式两种输出格式
- 交易信息格式化: 标准化显示地址和金额信息
- 分节显示: 使用分节标题使输出更加清晰
可以通过环境变量配置日志系统:
# 在.env文件中设置
LOG_LEVEL=INFO # 可选: DEBUG, INFO, WARNING, ERROR
VERBOSE_LOGGING=False # 设置为True以显示时间戳和日志级别from utils.logger import logger
# 基本使用
logger.info("这是一条信息")
logger.error("这是一条错误")
# 分节显示
logger.section("开始处理交易")
# 交易信息格式化
logger.transaction_info("0x1234567890abcdef", 100, "USDT")git clone https://github.com/bigsongeth/safe_trasaction_creat.git
pip install -r requirements.txt创建一个.env文件,包含以下配置:
# Notion配置
NOTION_API_KEY=your_notion_api_key
NOTION_DATABASE_ID=your_notion_database_id
# 以太坊配置
NETWORK=mainnet # 或 sepolia 等测试网络
RPC_URL=https://your-ethereum-rpc-url
# 私钥配置 (用于签名交易)
PRIVATE_KEY=your_ethereum_private_key
# Safe配置
SAFE_ADDRESS=your_safe_wallet_address
USDT_CONTRACT=usdt_contract_address
# 日志配置
LOG_LEVEL=INFO
VERBOSE_LOGGING=False
-
准备Notion数据库:
- 创建一个包含交易信息的Notion数据库
- 确保数据库包含必要的字段: 地址、金额、状态等
-
运行程序:
python src/main.py- 查看结果:
- 程序会自动获取Notion中已审核的交易
- 创建并签名批量转账交易
- 将交易提交到Safe Transaction Service
- 在Safe钱包界面中查看并确认交易
本工具支持Safe交易的离链签名流程:
- 创建Safe交易
- 使用第一个所有者私钥签名交易
- 将交易发送到Safe Transaction Service
- 其他所有者通过Safe Transaction Service收集并添加签名
- 达到阈值后执行交易
- python-dotenv: 环境变量管理
- notion-client: Notion API客户端
- web3: 与以太坊区块链交互
- eth-account: 以太坊账户管理
- requests: HTTP请求处理
- 其他eth相关依赖