Skip to main content
core.call 是 Composer 支持的众多 op 之一。它在这里拥有专属页面,是因为值得深入讲解 —— 有关每一个 op 的完整、实时列表,请参见 Op 目录
core.call 是针对任何尚未被更高级别 op 封装的链上函数的「逃生舱口」。它使用一个人类可读的 functionSignature 针对 target 编码一个 ABI 调用,并可选地花费一个绑定的资源(通过 resource)以及授予内联的授权。如果签名声明了 uint256 返回值(returns (uint256)),则该返回值会作为带类型的句柄暴露在 .result 上;而不含返回子句的签名不会暴露任何 .result core.callcore.rawCall 目前仅支持单个 uint256 返回值,或没有返回值 —— 其他返回类型会在编译时被拒绝。 lifi.swaplifi.zap 适用时请优先使用它们;它们会通过经过审计的协议边(edge)进行路由。仅当你需要直接的合约交互(金库赎回、奖励领取、自定义入口点)时才动用 core.call。对于预先编码好的 calldata,请参见 core.rawCall;对于只读调用,请参见 core.staticCall。两者都在 Op 目录中。

示例

将 ERC-4626 金库份额赎回为底层代币:
参见 callContract.ts,其中有一个完整的端到端示例,包括内联授权以及用于 payable 函数的 ValueCall