New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@rpch/sdk

Package Overview
Dependencies
Maintainers
2
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rpch/sdk - npm Package Compare versions

Comparing version 1.2.3 to 1.2.4

CHANGELOG.md

17

build/dp-api.js
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -34,7 +25,7 @@ exports.fetchQuota = exports.fetchNodes = exports.NoMoreNodes = void 0;

};
return retry((bail, num) => __awaiter(this, void 0, void 0, function* () {
return retry(async (bail, num) => {
if (num > 1) {
log.verbose('Retrying', url.host.toString(), 'after', num - 1, 'failure(s)');
}
const res = yield fetch(url, { headers });
const res = await fetch(url, { headers });
if (res.status !== 200) {

@@ -48,6 +39,6 @@ log.info('Fetching nodes returned', res.status);

case 403: // unauthorized
return bail(new Error((yield res.json())));
return bail(new Error((await res.json())));
}
return res.json();
}), DefaultBackoff);
}, DefaultBackoff);
}

@@ -54,0 +45,0 @@ exports.fetchNodes = fetchNodes;

@@ -89,3 +89,3 @@ "use strict";

const segTotal = ed.segmentsHistory.length;
const latsRaw = ed.segmentsHistory.map((sId) => { var _a; return (_a = ed.segments.get(sId)) === null || _a === void 0 ? void 0 : _a.latency; });
const latsRaw = ed.segmentsHistory.map((sId) => ed.segments.get(sId)?.latency);
const lats = latsRaw.filter((l) => !!l);

@@ -92,0 +92,0 @@ const segSuccesses = lats.length;

@@ -72,3 +72,3 @@ "use strict";

const total = xd.requestsHistory.length;
const latsRaw = xd.requestsHistory.map((rId) => { var _a; return (_a = xd.requests.get(rId)) === null || _a === void 0 ? void 0 : _a.latency; });
const latsRaw = xd.requestsHistory.map((rId) => xd.requests.get(rId)?.latency);
const lats = latsRaw.filter((l) => !!l);

@@ -75,0 +75,0 @@ const successes = lats.length;

@@ -25,11 +25,2 @@ "use strict";

};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -251,3 +242,2 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

this.sdkOps = (ops) => {
var _a, _b, _c;
return {

@@ -257,6 +247,6 @@ discoveryPlatformEndpoint: ops.discoveryPlatformEndpoint || defaultOps.discoveryPlatformEndpoint,

provider: ops.provider || defaultOps.provider,
disableMevProtection: (_a = ops.disableMevProtection) !== null && _a !== void 0 ? _a : defaultOps.disableMevProtection,
disableMevProtection: ops.disableMevProtection ?? defaultOps.disableMevProtection,
mevProtectionProvider: ops.mevProtectionProvider || defaultOps.mevProtectionProvider,
forceZeroHop: (_b = ops.forceZeroHop) !== null && _b !== void 0 ? _b : defaultOps.forceZeroHop,
segmentLimit: (_c = ops.segmentLimit) !== null && _c !== void 0 ? _c : defaultOps.segmentLimit,
forceZeroHop: ops.forceZeroHop ?? defaultOps.forceZeroHop,
segmentLimit: ops.segmentLimit ?? defaultOps.segmentLimit,
};

@@ -273,4 +263,4 @@ };

};
this.fetchChainId = (provider) => __awaiter(this, void 0, void 0, function* () {
const res = yield ProviderAPI.fetchChainId(provider).catch((err) => log.error('Error fetching chainId for', provider, JSON.stringify(err)));
this.fetchChainId = async (provider) => {
const res = await ProviderAPI.fetchChainId(provider).catch((err) => log.error('Error fetching chainId for', provider, JSON.stringify(err)));
if (!res) {

@@ -285,3 +275,3 @@ return;

this.chainIds.set(provider, id);
});
};
this.determineProvider = ({ provider }, { method }) => {

@@ -316,7 +306,5 @@ if (this.ops.disableMevProtection) {

*/
isReady(timeout) {
return __awaiter(this, void 0, void 0, function* () {
const t = timeout || this.ops.timeout;
return this.nodesColl.ready(t).then((_) => true);
});
async isReady(timeout) {
const t = timeout || this.ops.timeout;
return this.nodesColl.ready(t).then((_) => true);
}

@@ -327,73 +315,71 @@ /**

*/
send(req, ops) {
return __awaiter(this, void 0, void 0, function* () {
const reqOps = this.requestOps(ops);
this.populateChainIds(ops === null || ops === void 0 ? void 0 : ops.provider);
// TODO fixme
// eslint-disable-next-line no-async-promise-executor
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
// sanity check provider url
if (!Utils.isValidURL(reqOps.provider)) {
return reject('Cannot parse provider URL');
async send(req, ops) {
const reqOps = this.requestOps(ops);
this.populateChainIds(ops?.provider);
// TODO fixme
// eslint-disable-next-line no-async-promise-executor
return new Promise(async (resolve, reject) => {
// sanity check provider url
if (!Utils.isValidURL(reqOps.provider)) {
return reject('Cannot parse provider URL');
}
// sanity check mev protection provider url, if it is set
if (this.ops.mevProtectionProvider) {
if (!Utils.isValidURL(this.ops.mevProtectionProvider)) {
return reject('Cannot parse mevProtectionProvider URL');
}
// sanity check mev protection provider url, if it is set
if (this.ops.mevProtectionProvider) {
if (!Utils.isValidURL(this.ops.mevProtectionProvider)) {
return reject('Cannot parse mevProtectionProvider URL');
}
}
// gather entry - exit node pair
const resNodes = yield this.nodesColl
.requestNodePair(reqOps.timeout)
.catch((err) => {
log.error('Error finding node pair', err);
return reject(`Could not find node pair in ${reqOps.timeout} ms`);
});
if (!resNodes) {
return reject(`Unexpected code flow - should never be here`);
}
const provider = this.determineProvider(reqOps, req);
const headers = this.determineHeaders(provider, this.ops.mevKickbackAddress);
const hops = this.determineHops(!!this.ops.forceZeroHop);
// create request
const { entryNode, exitNode } = resNodes;
const id = RequestCache.generateId(this.requestCache);
const resReq = Request.create({
id,
provider,
req,
clientId: this.clientId,
entryPeerId: entryNode.id,
exitPeerId: exitNode.id,
exitPublicKey: ethers_1.utils.arrayify(exitNode.pubKey),
headers,
hops,
});
if (!resReq.success) {
log.error('Error creating request', resReq.error);
return reject('Unable to create request object');
}
// split request to segments
const request = resReq.req;
const segments = Request.toSegments(request);
const failMsg = this.checkSegmentLimit(segments.length);
if (failMsg) {
return reject(failMsg);
}
// set request expiration timer
const timer = setTimeout(() => {
log.error('request expired', request.id);
this.removeRequest(request);
return reject('request timed out');
}, reqOps.timeout);
// track request
const entry = RequestCache.add(this.requestCache, request, resolve, reject, timer);
this.nodesColl.requestStarted(request);
// send request to hoprd
log.info('sending request %i', request.id);
// queue segment sending for all of them
segments.forEach((s) => setTimeout(() => {
this.nodesColl.segmentStarted(request, s);
this.sendSegment(request, s, entryNode, entry);
}));
}
// gather entry - exit node pair
const resNodes = await this.nodesColl
.requestNodePair(reqOps.timeout)
.catch((err) => {
log.error('Error finding node pair', err);
return reject(`Could not find node pair in ${reqOps.timeout} ms`);
});
if (!resNodes) {
return reject(`Unexpected code flow - should never be here`);
}
const provider = this.determineProvider(reqOps, req);
const headers = this.determineHeaders(provider, this.ops.mevKickbackAddress);
const hops = this.determineHops(!!this.ops.forceZeroHop);
// create request
const { entryNode, exitNode } = resNodes;
const id = RequestCache.generateId(this.requestCache);
const resReq = Request.create({
id,
provider,
req,
clientId: this.clientId,
entryPeerId: entryNode.id,
exitPeerId: exitNode.id,
exitPublicKey: ethers_1.utils.arrayify(exitNode.pubKey),
headers,
hops,
});
if (!resReq.success) {
log.error('Error creating request', resReq.error);
return reject('Unable to create request object');
}
// split request to segments
const request = resReq.req;
const segments = Request.toSegments(request);
const failMsg = this.checkSegmentLimit(segments.length);
if (failMsg) {
return reject(failMsg);
}
// set request expiration timer
const timer = setTimeout(() => {
log.error('request expired', request.id);
this.removeRequest(request);
return reject('request timed out');
}, reqOps.timeout);
// track request
const entry = RequestCache.add(this.requestCache, request, resolve, reject, timer);
this.nodesColl.requestStarted(request);
// send request to hoprd
log.info('sending request %i', request.id);
// queue segment sending for all of them
segments.forEach((s) => setTimeout(() => {
this.nodesColl.segmentStarted(request, s);
this.sendSegment(request, s, entryNode, entry);
}));

@@ -400,0 +386,0 @@ });

@@ -1,2 +0,2 @@

import WS = require('isomorphic-ws');
import WebSocket = require('isomorphic-ws');
/**

@@ -48,3 +48,3 @@ * to be replaced with HOPR sdk soon.

};
export declare function connectWS(conn: ConnInfo): WS.WebSocket;
export declare function connectWS(conn: ConnInfo): WebSocket;
export declare function sendMessage(conn: ConnInfo & {

@@ -51,0 +51,0 @@ hops?: number;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getChannels = exports.getPeers = exports.accountAddresses = exports.deleteMessages = exports.retrieveMessages = exports.version = exports.sendMessage = exports.connectWS = void 0;
const WS = require("isomorphic-ws");
const WebSocket = require("isomorphic-ws");
function connectWS(conn) {

@@ -9,3 +9,3 @@ const wsURL = new URL('/api/v3/messages/websocket', conn.apiEndpoint);

wsURL.search = `?apiToken=${conn.accessToken}`;
return new WS.WebSocket(wsURL);
return new WebSocket(wsURL);
}

@@ -12,0 +12,0 @@ exports.connectWS = connectWS;

@@ -129,3 +129,7 @@ "use strict";

return Array.from(nodePairs.values()).reduce((acc, np) => {
const perfs = Array.from(np.exitDatas).map(([xId, xd]) => (Object.assign(Object.assign({}, ExitData.perf(xd)), { entryNode: np.entryNode, exitNode: np.exitNodes.get(xId) })));
const perfs = Array.from(np.exitDatas).map(([xId, xd]) => ({
...ExitData.perf(xd),
entryNode: np.entryNode,
exitNode: np.exitNodes.get(xId),
}));
return acc.concat(perfs);

@@ -170,3 +174,6 @@ }, []);

const ed = nodePairs.get(entryNode.id).entryData;
return Object.assign(Object.assign({}, EntryData.perf(ed)), { entryNode });
return {
...EntryData.perf(ed),
entryNode,
};
});

@@ -173,0 +180,0 @@ }

@@ -25,11 +25,2 @@ "use strict";

};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -65,3 +56,3 @@ const DPapi = __importStar(require("./dp-api"));

*/
this.ready = (timeout) => __awaiter(this, void 0, void 0, function* () {
this.ready = async (timeout) => {
return new Promise((resolve, reject) => {

@@ -85,7 +76,7 @@ const start = Date.now();

});
});
};
/**
* Request primary node pair.
*/
this.requestNodePair = (timeout) => __awaiter(this, void 0, void 0, function* () {
this.requestNodePair = async (timeout) => {
return new Promise((resolve, reject) => {

@@ -109,3 +100,3 @@ const start = Date.now();

});
});
};
/**

@@ -112,0 +103,0 @@ * Request secondary node pair.

@@ -25,11 +25,2 @@ "use strict";

};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -42,8 +33,8 @@ exports.fetchRPC = exports.fetchChainId = void 0;

const body = JSON.stringify(JRPC.chainId(provider));
return fetch(url, { headers, method: 'POST', body }).then((res) => __awaiter(this, void 0, void 0, function* () {
return fetch(url, { headers, method: 'POST', body }).then(async (res) => {
if (res.status !== 200) {
throw new Error(`Unexpected response: ${res.status}, ${yield res.text()}`);
throw new Error(`Unexpected response: ${res.status}, ${await res.text()}`);
}
return res.json();
}));
});
}

@@ -57,9 +48,9 @@ exports.fetchChainId = fetchChainId;

fetch(url, { headers, method: 'POST', body })
.then((res) => __awaiter(this, void 0, void 0, function* () {
.then(async (res) => {
if (res.status !== 200) {
return resolve({ status: res.status, message: yield res.text() });
return resolve({ status: res.status, message: await res.text() });
}
const resp = (yield res.json());
const resp = (await res.json());
return resolve(resp);
}))
})
.catch(reject);

@@ -70,3 +61,6 @@ });

function mergeHeaders(headers) {
return Object.assign(Object.assign({}, headers), { 'Content-Type': 'application/json' });
return {
...headers,
'Content-Type': 'application/json',
};
}

@@ -12,5 +12,8 @@ "use strict";

function add(cache, request, resolve, reject, timer) {
const entry = Object.assign(Object.assign({}, request), { resolve,
const entry = {
...request,
resolve,
reject,
timer });
timer,
};
cache.set(request.id, entry);

@@ -24,4 +27,3 @@ return entry;

function remove(cache, id) {
var _a;
const t = (_a = cache.get(id)) === null || _a === void 0 ? void 0 : _a.timer;
const t = cache.get(id)?.timer;
clearTimeout(t);

@@ -28,0 +30,0 @@ cache.delete(id);

{
"name": "@rpch/sdk",
"version": "1.2.3",
"version": "1.2.4",
"license": "LGPL-3.0",

@@ -34,4 +34,3 @@ "main": "./build/index.js",

"@types/async-retry": "^1.4.5",
"@types/debug": "^4.1.10",
"eslint-plugin-compat": "^4.2.0"
"@types/debug": "^4.1.10"
},

@@ -41,10 +40,7 @@ "dependencies": {

"async-retry": "^1.3.3",
"debug": "^4.3.4",
"ethers": "^5.7.2",
"isomorphic-ws": "^5.0.0",
"lz-string": "^1.5.0"
},
"browserslist": [
"defaults",
"not op_mini all"
]
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc