Chainlink Functions目前提供了一些字符串,uint 256和int 256的编码函数,但实际上,在需要发送多个参数或信息的场景中,将字节发送到solidity是有意义的,因此您可以将其发送为abi编码.
函数总是需要返回一个缓冲区,所以如果没有使用提供的编码器,您需要创建自己的缓冲区.为了做到这一点,可以使用JS Buffer.from
,它在Chainlink Functions Playround中工作得很好,但在实际使用该函数时失败了.
对于我的特定用例,我希望这样做:
return Buffer.from(hexstring, 'hex');
其中,十六进制字符串是我要发送到合同的ABI编码数据.
我得到的错误是:
TypeError:无法读取未定义的属性(正在读取‘from’)
我还try 了使用缓冲区的旧形式,比如
return new Buffer(hexstring, 'hex');
它也可以在操场上工作,但这一次的错误是Buffer不是一个构造函数.
考虑到它似乎根本不被引入,一个 idea 是在函数中只添加require
,但不允许使用require
,所以这不是可行的方法.