Naas.link搭建Chainlink预言机后请求无法运行价格始终为0问题求助
排查解决方案
- Job Spec格式适配问题
TOML格式的任务配置无法在JavaScript输入入口运行,你可以在Naas的Chainlink任务创建页切换到「Direct Request自定义任务」分类,即可找到TOML格式专用的编辑输入框。另外需要把配置中的两处YOUR_ORACLE_CONTRACT_ADDRESS占位符替换为你实际部署的Oracle合约链上地址,否则任务无法关联对应合约事件。 - 节点授权配置问题
你需要调用已部署的Oracle合约的setFulfillmentPermission方法,将你的Chainlink节点钱包地址添加到预言机的 fulfillment 白名单中。未授权的节点即使监听到链上请求,也无法调用fulfillOracleRequest方法回写结果,这是currentPrice始终为0的最常见原因。 - 合约部署操作问题
你提到的Kovan网络地址输入要求,实际是要求部署时将钱包网络切换为Kovan测试网,而非在合约构造参数中填写地址。若使用Remix部署,需先在编译器面板选中ATestnetConsumer合约,再切换到部署面板,部署按钮旁的参数输入区域会自动匹配合约要求的入参,当前你使用的消费者合约构造函数无需要传入的自定义参数,确认钱包网络为Kovan后直接点击部署即可。 - 请求参数校验问题
调用requestEthereumPrice方法发起请求前,需要确认两个配置:一是传入的Job ID与你创建任务后生成的externalJobID完全匹配,注意区分大小写;二是提前向消费者合约地址转入至少1枚测试网LINK作为预言机调用手续费,余额不足会导致请求未上链或被节点忽略。
内容的提问来源于stack exchange,提问作者Clint Oka
相关产品推荐
相关产品推荐

