You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单次Chainlink请求从同一JSON响应中读取多个uint256值

完全可以通过单次请求完成同一份JSON响应内两个uint256值的解析,无需发起两次独立请求。

依赖要求

不需要使用专门定制的Chainlink节点,标准Chainlink节点均支持该能力,但需要使用适配了多返回值解析逻辑的JobID,Job侧需要提前配置好从同一份JSON响应中提取两个目标字段的任务流。

合约端实现调整

你需要将原本两个独立的回调函数合并为一个接收多参数的回调,同时调整请求发起逻辑,指定新的回调函数签名即可,示例代码如下:

// 发起单次请求同时请求两个数值
function requestWeightAndHeight() public returns (bytes32 requestId) {
    // 此处JOB_ID替换为支持多值返回的对应JobID
    Chainlink.Request memory req = buildChainlinkRequest(JOB_ID, address(this), this.fulfillWeightAndHeight.selector);
    req.add("get", "你的目标API请求地址");
    // 额外的请求参数可按原有逻辑添加
    return sendChainlinkRequest(req, fee);
}

// 合并后的回调函数,按顺序接收两个uint256参数
function fulfillWeightAndHeight(bytes32 _requestId, uint256 _weight, uint256 _height) 
    public 
    recordChainlinkFulfillment(_requestId)
{
    weight = _weight;
    height = _height;
    // 此处可直接编写你需要的计算逻辑
}

Job侧配置要求(节点运营方完成)

对应Job的任务流水线需要按以下逻辑配置:

  • 拉取指定API的JSON响应数据
  • 分别通过两个JSON解析任务提取weight、height对应路径的数值,转换为uint256格式
  • 将两个数值按回调函数的参数顺序做ABI编码后,发送到你的合约回调地址

内容的提问来源于stack exchange,提问作者Daniel Vieira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:24:03