chainlink 合约没有调用响应后收到的 fulfill() 函数,这让我很为难

问题描述 投票:0回答:0
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol";
import "@chainlink/contracts/src/v0.8/ConfirmedOwner.sol";

contract FetchFromArray is ChainlinkClient, ConfirmedOwner {
    using Chainlink for Chainlink.Request;

    string public id="before";
    string public test="4";

    bytes32 private jobId;
    uint256 private fee;

    event RequestFirstId(bytes32 indexed requestId, string id);

    constructor() ConfirmedOwner(msg.sender) {
        setChainlinkToken(0x326C977E6efc84E512bB9C30f76E30c160eD06FB);
        setChainlinkOracle(0x40193c8518BB267228Fc409a613bDbD8eC5a97b3);
        jobId = "7d80a6386ef543a3abb52817f6707e3b";
        fee = (1 * LINK_DIVISIBILITY) / 10; // 0,1 * 10**18 (Varies by network and job)
    }

    function requestFirstId() public returns (bytes32 requestId) {
        Chainlink.Request memory req = buildChainlinkRequest(
            jobId,
            address(this),
            this.fulfill.selector
        );

        req.add(
            "get",
            "https://site.api.espn.com/apis/site/v2/sports/basketball/nba/summary?event=401541181"
        );
        req.add("path", "header,gameNote"); 

        return sendChainlinkRequest(req, fee);
    }

    function fulfill(
        bytes32 _requestId,
        string memory _id
    ) public recordChainlinkFulfillment(_requestId) {
        emit RequestFirstId(_requestId, _id);
        id = _id;
        test="2";
    }

    function withdrawLink() public onlyOwner {
        LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());
        require(
            link.transfer(msg.sender, link.balanceOf(address(this))),
            "Unable to transfer"
        );
    }
}

我在 sepolia testnet(eth) 和 mumbai(polygon) 上进行了测试。

我还进行了其他 API 请求并检查了 req.add('path',~) well.

Jobid也通过文件证实了

然而,合约 fulfill() 并没有被调用。

其他几个成功的API请求已经确认成功。 唯一的区别是对失败请求的大量响应似乎失败了。

但是,关于响应大小,无法通过文档确认。因此,确切的原因是未知的。

ChainlinkRequested事件确认,但id和test变量没有变化

我在混音上测试过

api solidity response chainlink
© www.soinside.com 2019 - 2024. All rights reserved.