为Binance提款构建Chainlink外部适配器



我已经尝试构建外部适配器,但不幸的是,我一直遇到错误:"您无权执行此请求";

如果你想知道如何准确地构建一个,有以下资源(基本上相同的材料,但不同的格式(:

  • 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
}

最新更新