我已经尝试构建外部适配器,但不幸的是,我一直遇到错误:"您无权执行此请求";
如果你想知道如何准确地构建一个,有以下资源(基本上相同的材料,但不同的格式(:
- https://blog.chain.link/build-and-use-external-adapters/(博客文章(
- https://youtu.be/65NhO5xxSZc(视频(
在上面的资源中,NodeJS中使用了一个模板:https://github.com/PatrickAlphaC/CL-EA-NodeJS-Template
这是我自己的尝试(有错误(的回报。我刚刚修改了index.js文件:https://github.com/gvandriel/CL-EA-NodeJS-Template
然后用启动服务器
- yarn(安装依赖项(
- 纱线起始
打开另一个终端并粘贴以下内容以发布提款请求:
curl -X POST -H "content-type:application/json" "http://localhost:8080/" --data '{ "id": 0, "data": { "asset": "USDT", "address": "0xe66273cC443F774653E885496f76b486F956B47F", "amount": 10 } }'
请注意由于您正在从Binance提款,因此您需要在您的帐户API设置中启用该设置并设置受限IP地址。此外,我相信你只能从你以前提取的地址提取资金。另外,别忘了用你自己的密钥更新.env_sample文件
代码中的作用是什么
我们知道第58行的totalstring正在工作,因为我们在外部适配器外对其进行了测试。此外,我们还知道带有X-MBX-APIKEY的标头正在工作。因此,我们认为错误在于以下方面:
Requester.request(config, customError)
.then((response) => {
// It's common practice to store the desired value at the top-level
// result key. This allows different adapters to be compatible with
// one another.
response.data.result = Requester.validateResultNumber(response.data, [
"msg",
]);
callback(response.status, Requester.success(jobRunID, response));
})
.catch((error) => {
callback(500, Requester.errored(jobRunID, error));
});
错误也可能在代码中的其他地方,因此请确保在此处检查修改后的index.js文件:https://github.com/gvandriel/CL-EA-NodeJS-Template
在index.js文件中,您正在设置params和config对象:
const params = {
asset,
address,
amount,
recvWindow,
timestamp,
signature,
};
const config = {
method: "post",
url,
headers: {
"X-MBX-APIKEY": process.env.API_key,
},
};
然而,params
从未被包括在config
中。此外,您似乎希望将这些参数作为POST数据发送。考虑将params
对象重命名为data
(Axios文档(,并在config
:中附加data
const config = {
method: "post",
url,
headers: {
"X-MBX-APIKEY": process.env.API_key,
},
data
}