面向资产管理者的特色功能。 在一笔已签名的交易中构建多策略收益组合,这是无需对每一步单独锁定资金即可构建投资组合的标准模式。
Scenario
某用户希望将其 USDC 头寸分散配置到两个收益场所:60% 存入 Aave v3 的 aEthUSDC,40% 存入 Morpho 的 Steakhouse USDC。该 flow 使用 core.split 按固定的基点(basis-point)比例划分输入资源,将两个输出句柄分别接入独立的 lifi.zap 节点,并为每个 zap 输出附加一个滑点 guard。
这个 recipe 是投资组合分散配置的标准结构,适用于任何将单个输入资源拆分、并将各拆分部分路由到不同终端场所的模式。
What this recipe demonstrates
- 使用单个基点比例的
core.split,bps: 6000 将 60% 发送到输出 a,其余 40% 发送到输出 b。
- 通过两个针对不同协议的
lifi.zap 节点并行消费两个拆分输出。
- 为每个 zap 的
amountOut port 独立附加一个 slippage guard。
- 多个终端资源(Aave 与 Morpho 的凭证代币)在单笔交易中被清扫(sweep)给发送方。
Full example
改编自 composer-sdk-examples 仓库中的 splitAndZap.ts。
What to observe
- Inputs. 一个资源输入(
amountIn: USDC)。示例使用 10,000 USDC。
- Nodes. 三个 op:一个
core.split,两个 lifi.zap。
- Split wire format.
flow.nodes[0].config === { bps: 6000 },其 bind.source 指向 input.amountIn。输出在解构返回值上命名为 a 和 b,它们成为引用 split.a 和 split.b。
- Guards. 每个 zap 在
amountOut 上都携带一个独立的、100 bps(1%)的 slippage guard。
- Terminal resources. 两个:来自 Aave zap 的
aEthUSDC,以及来自 Morpho zap 的 Steakhouse vault 份额。两者都被清扫给发送方。
producedResources[<name>].simulated?.amountOut. producedResources 中每个 zap 输出对应一个条目,各自带有独立的 simulated?.amountOut / simulated?.amountOutMin。