nerve-sdk-js
Version:
nerve nerve-js nerve-sdk nerve-js-sdk
100 lines (90 loc) • 2.27 kB
JavaScript
const axios = require('axios');
const https = require('https');
const nerve = require('../../index');
axios.defaults.headers.post['Content-Type'] = 'application/json'; // const agent = new https.Agent({
// rejectUnauthorized: false,
// host: '127.0.0.1',
// port: 1087
// });
const agent = new https.Agent({
rejectUnauthorized: false
});
/**
* 封装post请求
* Encapsulation post method
* @param url
* @param methodName
* @param data
* @returns {Promise}
*/
module.exports = {
post(url, methodName, data = []) {
return new Promise((resolve, reject) => {
data.unshift(nerve.chainId());
const params = {
"jsonrpc": "2.0",
"method": methodName,
"params": data,
"id": Math.floor(Math.random() * 1000)
};
axios.post(url, params, {
httpsAgent: agent
}).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
postComplete(url, methodName, data = []) {
return new Promise((resolve, reject) => {
const params = {
"jsonrpc": "2.0",
"method": methodName,
"params": data,
"id": Math.floor(Math.random() * 1000)
};
axios.post(url, params).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
postCompleteWithHeader(url, methodName, data = [], header = {}) {
header['Content-Type'] = 'application/json';
return new Promise((resolve, reject) => {
const params = {
"jsonrpc": "2.0",
"method": methodName,
"params": data,
"id": Math.floor(Math.random() * 1000)
};
axios.post(url, params, {
headers: header
}).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
postDirect(url, params = {}) {
return new Promise((resolve, reject) => {
axios.post(url, params).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
},
get(url) {
return new Promise((resolve, reject) => {
axios.get(url).then(response => {
resolve(response.data);
}, err => {
reject(err);
});
});
}
};