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

使用Chainlink Functions Toolkit执行npm run simulate时出错求助

问题现象

运行npm run simulate时触发以下错误:

secp256k1 unavailable, reverting to browser version
undefined
syntax error, RAM exceeded, or other error
error: Module not found "file:///tmp/FunctionsScript-1715359176579.ts"

修复步骤

1. 修正swa-func.js代码问题

Chainlink Functions运行环境内置ethers工具,无需手动从npm:导入;同时注意异步请求必须加await修饰。修改后的代码如下:

// 移除手动导入ethers,环境已内置该工具
const abiCoder = ethers.AbiCoder.defaultAbiCoder();

const characterId = args[0];
const url = `https://swapi.dev/api/people/${characterId}/`;

// 异步请求必须加await
const res = await Functions.makeHttpRequest({ url })

if (res.error) {
    console.log(res.error);
    throw Error("Request failed");
}

console.log("res data available")
console.log("response", res.data)

const character = res.data.name;
const height = res.data.height;

console.log(characterId)
console.log(character)
console.log(height)

const encoded = abiCoder.encode([`string`, `string`, `string`], [characterId, character, height]);
// 替换getBytes为arrayify,兼容内置ethers版本
return ethers.utils.arrayify(encoded);

2. 简化Functions-request-config.js依赖引用

直接使用toolkit官方导出的枚举,避免手动定义枚举值出错:

const fs = require("fs")
const { Location, ReturnType, CodeLanguage } = require("@chainlink/functions-toolkit")

require("@chainlink/env-enc").config()

const requestConfig = {
    source: fs.readFileSync("./swa-func.js").toString(),
    codeLocation: Location.Inline,
    secrets: {},
    args: ["2"],
    codeLanguage: CodeLanguage.JavaScript,
    expectedReturnType: ReturnType.bytes,
    secretsURLs: [],
}

module.exports = requestConfig

3. 解决secp256k1警告

该警告源于node环境下secp256k1原生模块编译问题,降级版本即可修复。修改package.json中的依赖:

{
  "scripts": {
    "simulate": "node ./Functions-simulate-script.js"
  },
  "dependencies": {
    "@chainlink/env-enc": "^1.0.5",
    "@chainlink/functions-toolkit": "^0.2.8",
    "secp256k1": "^4.0.2"
  }
}

执行npm install重新安装依赖。

4. 验证运行

完成上述修改后,执行npm run simulate,即可正常获取SWAPI数据并返回编码后的字节结果,控制台会输出对应的responseBytesHexstring及终端日志。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:15:58