PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-sui/src/lib
Просмотр файла: rpcClient.ts
import * as superagent from 'superagent';
export type Params = any;
async function request({ url, timeoutMs = undefined, params = {} }) {
return superagent
.post(url)
.send(params)
.timeout({ deadline: timeoutMs })
.type('json')
.set({ Accept: 'application/json' });
}
export async function requestIgnoreStatusCode(params: Params): Promise<superagent.Response> {
try {
return await request(params);
} catch (e: any) {
if ('response' in e) {
return e.response;
}
throw e;
}
}
export async function makeRPC(url: string, method: string, params: Params): Promise<Record<string, any>> {
const res = await requestIgnoreStatusCode({
method: 'post',
url,
timeoutMs: 3000,
params: { jsonrpc: '2.0', id: 1, method: method, params: params },
});
if (res.body.error) {
const error = res.body.error;
throw new Error(`Request to the node failed. Error code: ${error.code}, message: ${error.message}`);
}
if (res.statusCode !== 200) {
throw new Error(`Request to the node failed, Status code: ${res.statusCode}`);
}
return res.body.result;
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!