Vault Node
Vault Node 是一个交易执行节点,用于连接和查询 TradingFlow 金库系统中的用户资产信息。节点支持多链查询,包括 Aptos 和 Flow EVM,可以获取金库余额、持仓组合和资产价值等信息。
节点信息
节点类型
vault_node
显示名称
Vault
节点分类
Trade(交易执行)
图标
🏦 金库图标
句柄颜色
Amber(橙色)
功能说明
Vault Node 连接到 TradingFlow 的去中心化金库系统,查询指定用户地址的资产持仓信息。节点自动计算资产价值,支持多链查询,并将结果传递给下游交易节点。
主要用途:
查询金库资产持仓和余额
获取多链资产价值信息
为交易节点提供资金来源
监控资产组合变化
计算总资产价值(USD)
核心特性:
🌐 多链支持:Aptos 和 Flow EVM
💰 实时价格:自动获取代币价格并计算资产价值
📊 投资组合:完整的持仓构成和比例信息
🔗 链式传递:将金库地址和链信息传递给下游交易节点
🔄 自动刷新:每次执行更新最新的资产信息
输入参数
参数列表
chain
select
✅
aptos
区块链网络
vault_address
text
✅
-
金库地址或用户地址
chain_id
number
❌
545
Flow EVM 链 ID(仅 Flow EVM 需要)
chain 参数
支持的区块链:
Aptos
aptos
Aptos 主网/测试网
Flow EVM
flow_evm
Flow EVM 测试网
选择指南:
如果您的金库在 Aptos 链上,选择
aptos如果您的金库在 Flow EVM 链上,选择
flow_evm
vault_address 参数
格式要求:
Aptos
0x 开头的十六进制地址
0x6a1a233e9c3871fc3719e4238bf61218c98d3b89fa5c2a37c87e7f6d60e07292
Flow EVM
0x 开头的以太坊格式地址
0x1234567890123456789012345678901234567890
说明:
这是您在 TradingFlow 系统中创建的金库地址
可以在 Windmill 页面的 Vaults 标签页查看您的金库地址
地址必须是有效的已创建金库
chain_id 参数
仅用于 Flow EVM:
545
Flow Testnet
Flow EVM 测试网(默认)
747
Flow Mainnet
Flow EVM 主网(即将支持)
输出参数
输出列表
vault
Vault
object
完整的金库信息对象,包含链、地址、余额和持仓
vault 输出
数据类型: object
完整数据结构:
{
success: boolean; // 查询是否成功
vault_address: string; // 金库地址
chain: string; // 区块链网络
chain_id: number; // 链 ID(Flow EVM)
holdings: Array<{ // 持仓列表
token_address: string; // 代币合约地址
amount: string; // 原始数量(最小单位)
symbol: string; // 代币符号
decimals: number; // 小数位数
price_usd: number; // 单价(USD)
value_usd: number; // 持仓价值(USD)
amount_human_readable: number; // 可读数量
percentage?: number; // 占比(仅 Flow EVM)
}>;
total_value_usd: number; // 总价值(USD)
token_count?: number; // 代币种类数(Flow EVM)
timestamp?: string; // 查询时间戳
message: string; // 状态消息
}说明:
vault 输出包含完整的金库信息,包括链、地址、余额、持仓等
下游节点可以从这个对象中提取所需的任何字段
包含实时价格和计算后的资产价值
信号传输
发送的信号
信号句柄: vault_balance
信号类型: SignalType.VAULT_INFO
信号负载: 完整的金库信息对象(见上文 vault_balance 输出结构)
信号流向示例
Vault Node
↓ vault (金库信息)
↓ chain (链信息)
↓ vault_address (地址)
↓
Swap/Buy/Sell Node (使用金库执行交易)工作流程
节点执行流程
1. 参数验证
├─ 检查 chain 是否支持(aptos/flow_evm)
├─ 检查 vault_address 是否提供
└─ Flow EVM 检查 chain_id(默认 545)
2. 初始化服务
├─ Aptos: AptosVaultService
└─ Flow EVM: FlowEvmVaultService
3. 查询持仓
├─ Aptos: get_investor_holdings()
└─ Flow EVM: get_vault_info_with_prices()
4. 价格计算
├─ 获取每个代币的 USD 价格
├─ 计算每个持仓的价值
└─ 汇总总资产价值
5. 格式化输出
├─ 统一 Aptos 和 Flow EVM 的数据格式
├─ 添加可读数量和百分比
└─ 构建完整的输出对象
6. 发送信号
└─ 发送 VAULT_INFO 信号给下游节点
7. 完成
└─ 设置节点状态为 COMPLETED多链处理差异
服务类
AptosVaultService
FlowEvmVaultService
查询方法
get_investor_holdings
get_vault_info_with_prices
价格获取
节点内获取
服务返回包含价格
持仓格式
需要转换小数位
已转换为可读格式
额外字段
timestamp
percentage, token_count
信号传输
发送的信号
信号句柄: vault
信号类型: SignalType.VAULT_INFO
信号负载: 完整的金库信息对象(见上文 vault 输出结构)
信号流向示例
Vault Node
↓ vault (包含 chain, vault_address, holdings, total_value_usd 等)
↓
Swap/Buy/Sell Node (从 vault 对象中提取所需字段执行交易)使用示例
示例 1:Aptos 金库查询
场景: 查询 Aptos 链上的金库持仓,然后执行 Swap 操作。
Vault Node 配置:
{
"chain": "aptos",
"vault_address": "0x6a1a233e9c3871fc3719e4238bf61218c98d3b89fa5c2a37c87e7f6d60e07292"
}工作流结构:
Vault Node (Aptos)
↓ vault (持仓信息: 100 APT, 50 USDT)
↓
Swap Node (USDT → APT)
↓ trade_receipt
Telegram Sender Node (发送交易通知)vault 输出示例:
{
"success": true,
"vault_address": "0x6a1a...",
"chain": "aptos",
"holdings": [
{
"symbol": "APT",
"amount_human_readable": 100.0,
"value_usd": 725.0
},
{
"symbol": "USDT",
"amount_human_readable": 50.0,
"value_usd": 50.0
}
],
"total_value_usd": 775.0
}示例 2:Flow EVM 金库查询
场景: 查询 Flow EVM 测试网金库,检查余额后执行买入。
Vault Node 配置:
{
"chain": "flow_evm",
"chain_id": 545,
"vault_address": "0x1234567890123456789012345678901234567890"
}工作流结构:
Vault Node (Flow EVM)
↓ vault (持仓信息)
↓
Code Node (检查是否有足够 USDC)
↓ decision
Condition Node (余额 > 100 USDC?)
↓ (Yes)
Buy Node (买入 FLOW)示例 3:动态金库选择
场景: 根据 AI 分析结果动态选择要操作的金库。
工作流结构:
AI Model Node (分析市场,决定在哪条链交易)
↓ ai_response { chain: "aptos" }
↓
Vault Node (接收 chain 参数)
↓ vault_balance
↓
Swap Node (执行交易)API 依赖
Aptos Vault Service
功能: 查询 Aptos 链上的金库信息
方法: get_investor_holdings(vault_address)
返回格式:
{
"holdings": [
{
"token_address": "0x1::aptos_coin::AptosCoin",
"amount": "100000000",
"decimals": 8,
"token_symbol": "APT"
}
]
}Flow EVM Vault Service
功能: 查询 Flow EVM 链上的金库信息
方法: get_vault_info_with_prices(vault_address)
返回格式:
{
"success": True,
"vault": {
"total_value_usd": "6.00",
"portfolio_composition": [
{
"token_address": "0x...",
"amount": "5.0",
"token_symbol": "FLOW",
"decimals": 18,
"price_usd": 0.85,
"value_usd": "4.25",
"percentage": 70.83
}
],
"token_count": 2
}
}最佳实践
1. 金库地址获取
推荐流程:
1. 登录 TradingFlow 平台
2. 进入 Windmill 页面
3. 查看 "My Vaults" 标签页
4. 复制金库地址
5. 粘贴到 Vault Node 配置2. 链选择
✅ 推荐:
确认您的金库在哪条链上创建
使用对应的 chain 参数
Flow EVM 需要指定正确的 chain_id
❌ 避免:
不要在 Aptos 金库上使用 flow_evm
不要使用无效的金库地址
3. 工作流设计
基本模式:
Vault Node → 决策节点 → 交易节点带余额检查:
Vault Node → Code Node (检查余额) → Condition Node → 交易节点多金库对比:
Vault Node (Aptos) ─┐
├─→ Code Node (对比价值) → 选择最佳金库
Vault Node (Flow) ──┘注意事项
⚠️ 重要提示
金库地址验证
地址必须是有效的已创建金库
使用错误地址会导致查询失败
建议在 Windmill 页面确认地址
链参数一致性
chain 参数必须与金库实际所在链匹配
Flow EVM 必须指定正确的 chain_id
不支持跨链金库查询
价格数据时效性
价格数据实时从市场获取
可能存在短暂延迟
网络问题可能导致价格获取失败
资产价值计算
小数位转换可能存在精度损失
价格为 0 的代币价值为 0
总价值为所有持仓价值之和
输出信号使用
下游交易节点必须接收 vault_address 参数
chain 参数确保交易在正确的链上执行
vault 可用于余额检查和决策
故障排查
Q: 提示 "vault_address is required but not provided"?
A:
确认 Vault Node 的 vault_address 参数已填写
如果使用信号传递,确认上游节点正确发送了 vault_address
检查地址格式是否正确(Aptos: 0x..., Flow EVM: 0x...)
Q: 查询返回空持仓或价值为 0?
A:
确认金库地址正确
确认金库中确实有资产
检查网络连接是否正常
查看节点日志获取详细错误信息
Q: Flow EVM 查询失败?
A:
确认 chain_id 正确(测试网: 545)
检查 Flow EVM companion 服务是否运行
确认金库地址格式正确
查看错误日志确认具体问题
Q: 代币价格显示为 0?
A:
某些代币可能暂时无法获取价格
新代币可能未被价格服务收录
网络问题可能导致价格获取失败
检查日志中的 "Failed to get price for token" 警告
技术规格
节点版本
1.0.0
支持的链
Aptos, Flow EVM
最大并发
1
执行模式
单次执行(查询一次后完成)
超时时间
30 秒(服务调用)
日志级别
DEBUG, INFO, WARNING, ERROR
相关节点
Swap Node - 使用金库执行代币交换
Buy Node - 使用金库买入代币
Sell Node - 使用金库卖出代币
Code Node - 处理金库数据和余额检查
Condition Node - 根据金库余额做决策
相关文档:
节点与工作流 - 节点基础概念
Weather 语法 - 工作流文件格式
Last updated