使用 Chainlink 获取请求以检索返回 0x0000..00 作为响应的字符串

问题描述

我在 Chainlink 官方文档中学习了本教程: https://docs.chain.link/docs/make-a-http-get-request#config

我使用 AlphaChain Kovan oracle 来检索 bytes32: https://market.link/jobs/c2387021-cf1c-44a0-ae79-66fcdf39cff3?network=1

当 oracle 得到答案并运行fulfill() 时,它会将收到的字符串分配给我的“name”变量(一个bytes32 变量)。我调用oracle的时候好像交易通过了,但是当我点击“name”变量时,变量只显示0x0000...00,这是怎么回事?

解决方法

0x00000.... 是部署合约时设置的默认值“name”。 发送请求后,您需要给节点时间进行响应,并将其响应事务包含在区块链中。 因此,在您发送请求后,给它大约 30 秒到一分钟的时间并再次检查,“名称”中的值应反映您以 32 字节检索的字符串。