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
1
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 0.1.7-blockwallet.0 to 0.1.7-blockwallet.1

6

build/index.d.ts

@@ -76,2 +76,8 @@ import { Request, Response } from '@rpch/common';

/**
* Remove request from requestCache and add failed metric
* @param req Request
* @returns void
*/
handleFailedRequest(req: Request): void;
/**
* Start the SDK and initialize necessary data.

@@ -78,0 +84,0 @@ */

224

build/index.js

@@ -54,2 +54,3 @@ "use strict";

var import_cross_fetch = __toESM(require("cross-fetch"));
var import_async_retry = __toESM(require("async-retry"));
var import_reliability_score = __toESM(require("./reliability-score"));

@@ -59,2 +60,3 @@ var import_request_cache = __toESM(require("./request-cache"));

const log = (0, import_utils.createLogger)();
const MAXIMUM_SEGMENTS_PER_REQUEST = 100;
const DEADLOCK_MS = 1e3 * 60 * 0.5;

@@ -82,50 +84,57 @@ class SDK {

return __async(this, null, function* () {
log.verbose("Selecting entry node");
const rawResponse = yield (0, import_cross_fetch.default)(
new URL(
"/api/v1/request/entry-node",
discoveryPlatformApiEndpoint
).toString(),
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept-Content": "application/json"
},
body: JSON.stringify({
client: this.ops.client,
exclusionList
})
try {
this.selectingEntryNode = true;
log.verbose("Selecting entry node");
const rawResponse = yield (0, import_cross_fetch.default)(
new URL(
"/api/v1/request/entry-node",
discoveryPlatformApiEndpoint
).toString(),
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept-Content": "application/json"
},
body: JSON.stringify({
client: this.ops.client,
exclusionList
})
}
);
const response = yield rawResponse.json();
if (rawResponse.status !== 200) {
log.error("Failed to request entry node", rawResponse.status, response);
throw new Error(`Failed to request entry node`);
}
);
const response = yield rawResponse.json();
if (rawResponse.status !== 200) {
log.error("Failed to request entry node", rawResponse.status, response);
throw new Error(`Failed to request entry node`);
const apiEndpointUrl = new URL(response.hoprd_api_endpoint);
this.entryNode = {
apiEndpoint: apiEndpointUrl.toString(),
apiToken: response.accessToken,
peerId: response.id
};
log.verbose("Selected entry node", this.entryNode);
if (this.stopMessageListener)
this.stopMessageListener();
this.stopMessageListener = yield import_common.hoprd.createMessageListener(
this.entryNode.apiEndpoint,
this.entryNode.apiToken,
(message) => {
try {
const segment = import_common.Segment.fromString(message);
this.segmentCache.onSegment(segment);
} catch (e) {
log.verbose(
"rejected received data from HOPRd: not a valid segment",
message
);
}
}
);
return this.entryNode;
} catch (error) {
throw error;
} finally {
this.selectingEntryNode = false;
}
const apiEndpointUrl = new URL(response.hoprd_api_endpoint);
this.entryNode = {
apiEndpoint: apiEndpointUrl.toString(),
apiToken: response.accessToken,
peerId: response.id
};
log.verbose("Selected entry node", this.entryNode);
if (this.stopMessageListener)
this.stopMessageListener();
this.stopMessageListener = yield import_common.hoprd.createMessageListener(
this.entryNode.apiEndpoint,
this.entryNode.apiToken,
(message) => {
try {
const segment = import_common.Segment.fromString(message);
this.segmentCache.onSegment(segment);
} catch (e) {
log.verbose(
"rejected received data from HOPRd: not a valid segment",
message
);
}
}
);
return this.entryNode;
});

@@ -163,32 +172,41 @@ }

}
const counter = yield this.getKeyVal(
match.request.exitNodeDestination
).then((k) => BigInt(k || "0"));
const response = import_common.Response.fromMessage(
this.crypto,
match.request,
message,
counter,
(exitNodeId, counter2) => {
this.setKeyVal(exitNodeId, counter2.toString());
}
);
const responseTime = Date.now() - match.createdAt.getTime();
log.verbose(
"response time for request %s: %s ms",
match.request.id,
responseTime,
log.createMetric({
id: match.request.id,
responseTime
})
);
match.resolve(response);
this.reliabilityScore.addMetric(
match.request.entryNodeDestination,
match.request.id,
"success"
);
this.requestCache.removeRequest(match.request);
log.verbose("responded to %s with %s", match.request.body, response.body);
try {
const counter = yield this.getKeyVal(
match.request.exitNodeDestination
).then((k) => BigInt(k || "0"));
const response = import_common.Response.fromMessage(
this.crypto,
match.request,
message,
counter,
(exitNodeId, counter2) => {
this.setKeyVal(exitNodeId, counter2.toString());
}
);
const responseTime = Date.now() - match.createdAt.getTime();
log.verbose(
"response time for request %s: %s ms",
match.request.id,
responseTime,
log.createMetric({
id: match.request.id,
responseTime
})
);
match.resolve(response);
this.reliabilityScore.addMetric(
match.request.entryNodeDestination,
match.request.id,
"success"
);
this.requestCache.removeRequest(match.request);
log.verbose("responded to %s with %s", match.request.body, response.body);
} catch (e) {
log.error(
"failed to decrypt message id %s with body",
message.id,
message.body
);
this.handleFailedRequest(match.request);
}
});

@@ -200,2 +218,8 @@ }

}
handleFailedRequest(req) {
var _a;
this.onRequestRemoval(req);
(_a = this.requestCache.getRequest(req.id)) == null ? void 0 : _a.reject("request failed");
this.requestCache.removeRequest(req);
}
start() {

@@ -212,2 +236,22 @@ return __async(this, null, function* () {

this.crypto.set_panic_hook();
yield (0, import_async_retry.default)(
() => this.selectEntryNode(this.ops.discoveryPlatformApiEndpoint),
{
retries: 5,
onRetry: (e, attempt) => {
log.error("Error while selecting entry node", e);
log.verbose("Retrying to select entry node, attempt:", attempt);
}
}
);
yield (0, import_async_retry.default)(
() => this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint),
{
retries: 5,
onRetry: (e, attempt) => {
log.error("Error while fetching exit nodes", e);
log.verbose("Retrying to fetch exit nodes, attempt:", attempt);
}
}
);
this.intervals.push(

@@ -221,7 +265,9 @@ setInterval(() => {

setInterval(() => {
this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint);
this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint).catch(
(error) => {
log.error("Failed to fetch exit nodes", error);
}
);
}, 6e4)
);
yield this.selectEntryNode(this.ops.discoveryPlatformApiEndpoint);
yield this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint);
});

@@ -254,3 +300,2 @@ }

try {
this.selectingEntryNode = true;
yield this.selectEntryNode(

@@ -260,6 +305,4 @@ this.ops.discoveryPlatformApiEndpoint,

);
this.selectingEntryNode = false;
} catch (error) {
log.error("Couldn't find elegible node: ", error);
this.selectingEntryNode = false;
log.error("Couldn't find new entry node: ", error);
this.setDeadlock(DEADLOCK_MS);

@@ -311,2 +354,9 @@ }

const segments = message.toSegments();
if (segments.length > MAXIMUM_SEGMENTS_PER_REQUEST) {
log.error(
"Request exceeds maximum amount of segments with %s segments",
segments.length
);
return reject("Request is too big");
}
this.requestCache.addRequest(req, resolve, reject);

@@ -328,11 +378,7 @@ const sendMessagePromises = segments.map((segment) => {

if (rejectedResults.length > 0) {
this.onRequestRemoval(req);
this.requestCache.removeRequest(req);
reject("failed to send message to hoprd");
this.handleFailedRequest(req);
}
} catch (e) {
log.error("failed to send message to hoprd", e);
this.onRequestRemoval(req);
this.requestCache.removeRequest(req);
reject("failed to send message to hoprd");
this.handleFailedRequest(req);
}

@@ -339,0 +385,0 @@ }));

# @rpch/sdk
## 0.1.7-blockwallet.1
### Patch Changes
- Add large request blocker
- Updated dependencies
- @rpch/crypto-bridge@0.1.7-blockwallet.1
- @rpch/common@0.1.7-blockwallet.1
## 0.1.7-blockwallet.0

@@ -4,0 +13,0 @@

@@ -1,5 +0,5 @@

{"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/index.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/index.ts","statementMap":{"0":{"start":{"line":4,"column":0},"end":{"line":4,"column":null}},"1":{"start":{"line":13,"column":0},"end":{"line":13,"column":45}},"2":{"start":{"line":14,"column":0},"end":{"line":14,"column":32}},"3":{"start":{"line":15,"column":0},"end":{"line":15,"column":62}},"4":{"start":{"line":16,"column":0},"end":{"line":16,"column":43}},"5":{"start":{"line":17,"column":0},"end":{"line":17,"column":39}},"6":{"start":{"line":19,"column":12},"end":{"line":19,"column":26}},"7":{"start":{"line":20,"column":20},"end":{"line":20,"column":34}},"8":{"start":{"line":73,"column":21},"end":{"line":73,"column":36}},"9":{"start":{"line":74,"column":12},"end":{"line":74,"column":65}},"10":{"start":{"line":75,"column":12},"end":{"line":75,"column":67}},"11":{"start":{"line":57,"column":10},"end":{"line":57,"column":41}},"12":{"start":{"line":64,"column":10},"end":{"line":64,"column":37}},"13":{"start":{"line":77,"column":4},"end":{"line":77,"column":79}},"14":{"start":{"line":77,"column":54},"end":{"line":77,"column":77}},"15":{"start":{"line":78,"column":4},"end":{"line":80,"column":6}},"16":{"start":{"line":79,"column":6},"end":{"line":79,"column":36}},"17":{"start":{"line":81,"column":4},"end":{"line":84,"column":6}},"18":{"start":{"line":91,"column":4},"end":{"line":91,"column":57}},"19":{"start":{"line":107,"column":4},"end":{"line":107,"column":40}},"20":{"start":{"line":108,"column":45},"end":{"line":123,"column":null}},"21":{"start":{"line":130,"column":8},"end":{"line":130,"column":32}},"22":{"start":{"line":133,"column":4},"end":{"line":136,"column":null}},"23":{"start":{"line":134,"column":6},"end":{"line":134,"column":78}},"24":{"start":{"line":135,"column":6},"end":{"line":135,"column":54}},"25":{"start":{"line":138,"column":27},"end":{"line":138,"column":63}},"26":{"start":{"line":140,"column":4},"end":{"line":144,"column":6}},"27":{"start":{"line":145,"column":4},"end":{"line":145,"column":55}},"28":{"start":{"line":148,"column":4},"end":{"line":148,"column":61}},"29":{"start":{"line":148,"column":34},"end":{"line":148,"column":61}},"30":{"start":{"line":149,"column":4},"end":{"line":163,"column":6}},"31":{"start":{"line":153,"column":8},"end":{"line":161,"column":null}},"32":{"start":{"line":154,"column":26},"end":{"line":154,"column":53}},"33":{"start":{"line":155,"column":10},"end":{"line":155,"column":47}},"34":{"start":{"line":157,"column":10},"end":{"line":160,"column":12}},"35":{"start":{"line":164,"column":4},"end":{"line":164,"column":26}},"36":{"start":{"line":175,"column":4},"end":{"line":175,"column":39}},"37":{"start":{"line":179,"column":10},"end":{"line":184,"column":31}},"38":{"start":{"line":184,"column":20},"end":{"line":184,"column":30}},"39":{"start":{"line":186,"column":4},"end":{"line":189,"column":8}},"40":{"start":{"line":186,"column":45},"end":{"line":189,"column":6}},"41":{"start":{"line":191,"column":4},"end":{"line":191,"column":76}},"42":{"start":{"line":191,"column":37},"end":{"line":191,"column":76}},"43":{"start":{"line":193,"column":4},"end":{"line":193,"column":61}},"44":{"start":{"line":194,"column":4},"end":{"line":194,"column":26}},"45":{"start":{"line":203,"column":18},"end":{"line":203,"column":58}},"46":{"start":{"line":204,"column":4},"end":{"line":211,"column":null}},"47":{"start":{"line":205,"column":6},"end":{"line":209,"column":8}},"48":{"start":{"line":210,"column":6},"end":{"line":210,"column":13}},"49":{"start":{"line":213,"column":20},"end":{"line":215,"column":35}},"50":{"start":{"line":215,"column":18},"end":{"line":215,"column":34}},"51":{"start":{"line":218,"column":21},"end":{"line":225,"column":null}},"52":{"start":{"line":224,"column":8},"end":{"line":224,"column":55}},"53":{"start":{"line":228,"column":25},"end":{"line":228,"column":63}},"54":{"start":{"line":229,"column":4},"end":{"line":237,"column":6}},"55":{"start":{"line":239,"column":4},"end":{"line":239,"column":28}},"56":{"start":{"line":240,"column":4},"end":{"line":244,"column":6}},"57":{"start":{"line":245,"column":4},"end":{"line":245,"column":51}},"58":{"start":{"line":247,"column":4},"end":{"line":247,"column":78}},"59":{"start":{"line":257,"column":4},"end":{"line":257,"column":80}},"60":{"start":{"line":258,"column":4},"end":{"line":258,"column":45}},"61":{"start":{"line":265,"column":4},"end":{"line":265,"column":29}},"62":{"start":{"line":265,"column":22},"end":{"line":265,"column":29}},"63":{"start":{"line":268,"column":4},"end":{"line":290,"column":null}},"64":{"start":{"line":272,"column":6},"end":{"line":272,"column":61}},"65":{"start":{"line":273,"column":6},"end":{"line":274,"column":71}},"66":{"start":{"line":277,"column":9},"end":{"line":290,"column":null}},"67":{"start":{"line":278,"column":6},"end":{"line":280,"column":39}},"68":{"start":{"line":278,"column":21},"end":{"line":279,"column":null}},"69":{"start":{"line":284,"column":6},"end":{"line":284,"column":60}},"70":{"start":{"line":285,"column":6},"end":{"line":287,"column":33}},"71":{"start":{"line":285,"column":21},"end":{"line":286,"column":null}},"72":{"start":{"line":289,"column":6},"end":{"line":289,"column":31}},"73":{"start":{"line":293,"column":4},"end":{"line":298,"column":6}},"74":{"start":{"line":295,"column":8},"end":{"line":295,"column":58}},"75":{"start":{"line":296,"column":8},"end":{"line":296,"column":58}},"76":{"start":{"line":300,"column":4},"end":{"line":304,"column":6}},"77":{"start":{"line":302,"column":8},"end":{"line":302,"column":67}},"78":{"start":{"line":306,"column":4},"end":{"line":306,"column":70}},"79":{"start":{"line":307,"column":4},"end":{"line":307,"column":69}},"80":{"start":{"line":314,"column":4},"end":{"line":314,"column":61}},"81":{"start":{"line":314,"column":34},"end":{"line":314,"column":61}},"82":{"start":{"line":315,"column":4},"end":{"line":317,"column":null}},"83":{"start":{"line":316,"column":6},"end":{"line":316,"column":30}},"84":{"start":{"line":327,"column":4},"end":{"line":327,"column":71}},"85":{"start":{"line":327,"column":23},"end":{"line":327,"column":71}},"86":{"start":{"line":328,"column":4},"end":{"line":328,"column":62}},"87":{"start":{"line":328,"column":29},"end":{"line":328,"column":62}},"88":{"start":{"line":329,"column":4},"end":{"line":329,"column":76}},"89":{"start":{"line":329,"column":33},"end":{"line":329,"column":76}},"90":{"start":{"line":331,"column":33},"end":{"line":332,"column":null}},"91":{"start":{"line":334,"column":36},"end":{"line":334,"column":38}},"92":{"start":{"line":335,"column":4},"end":{"line":354,"column":null}},"93":{"start":{"line":339,"column":6},"end":{"line":339,"column":75}},"94":{"start":{"line":340,"column":6},"end":{"line":340,"column":49}},"95":{"start":{"line":341,"column":6},"end":{"line":352,"column":null}},"96":{"start":{"line":342,"column":8},"end":{"line":342,"column":39}},"97":{"start":{"line":343,"column":8},"end":{"line":346,"column":10}},"98":{"start":{"line":347,"column":8},"end":{"line":347,"column":40}},"99":{"start":{"line":349,"column":8},"end":{"line":349,"column":58}},"100":{"start":{"line":350,"column":8},"end":{"line":350,"column":40}},"101":{"start":{"line":351,"column":8},"end":{"line":351,"column":38}},"102":{"start":{"line":353,"column":6},"end":{"line":353,"column":40}},"103":{"start":{"line":357,"column":30},"end":{"line":358,"column":null}},"104":{"start":{"line":358,"column":16},"end":{"line":358,"column":null}},"105":{"start":{"line":360,"column":21},"end":{"line":360,"column":69}},"106":{"start":{"line":361,"column":4},"end":{"line":368,"column":6}},"107":{"start":{"line":376,"column":4},"end":{"line":376,"column":46}},"108":{"start":{"line":376,"column":33},"end":{"line":376,"column":46}},"109":{"start":{"line":377,"column":16},"end":{"line":377,"column":26}},"110":{"start":{"line":378,"column":4},"end":{"line":380,"column":null}},"111":{"start":{"line":379,"column":6},"end":{"line":379,"column":69}},"112":{"start":{"line":381,"column":4},"end":{"line":381,"column":40}},"113":{"start":{"line":389,"column":16},"end":{"line":389,"column":26}},"114":{"start":{"line":390,"column":4},"end":{"line":390,"column":44}},"115":{"start":{"line":391,"column":4},"end":{"line":391,"column":66}},"116":{"start":{"line":400,"column":4},"end":{"line":400,"column":69}},"117":{"start":{"line":400,"column":23},"end":{"line":400,"column":69}},"118":{"start":{"line":401,"column":4},"end":{"line":401,"column":62}},"119":{"start":{"line":401,"column":29},"end":{"line":401,"column":62}},"120":{"start":{"line":403,"column":4},"end":{"line":428,"column":7}},"121":{"start":{"line":403,"column":49},"end":{"line":428,"column":6}},"122":{"start":{"line":404,"column":22},"end":{"line":404,"column":37}},"123":{"start":{"line":405,"column":23},"end":{"line":405,"column":43}},"124":{"start":{"line":406,"column":6},"end":{"line":406,"column":57}},"125":{"start":{"line":407,"column":29},"end":{"line":407,"column":34}},"126":{"start":{"line":408,"column":6},"end":{"line":421,"column":null}},"127":{"start":{"line":409,"column":8},"end":{"line":420,"column":13}},"128":{"start":{"line":418,"column":12},"end":{"line":418,"column":80}},"129":{"start":{"line":419,"column":12},"end":{"line":419,"column":36}},"130":{"start":{"line":423,"column":6},"end":{"line":427,"column":null}},"131":{"start":{"line":424,"column":8},"end":{"line":424,"column":35}},"132":{"start":{"line":425,"column":8},"end":{"line":425,"column":45}},"133":{"start":{"line":426,"column":8},"end":{"line":426,"column":50}},"134":{"start":{"line":54,"column":0},"end":{"line":54,"column":21}}},"fnMap":{"0":{"name":"(anonymous_14)","decl":{"start":{"line":72,"column":2},"end":{"line":72,"column":null}},"loc":{"start":{"line":75,"column":67},"end":{"line":85,"column":3}}},"1":{"name":"(anonymous_15)","decl":{"start":{"line":77,"column":41},"end":{"line":77,"column":42}},"loc":{"start":{"line":77,"column":54},"end":{"line":77,"column":77}}},"2":{"name":"(anonymous_16)","decl":{"start":{"line":78,"column":41},"end":{"line":78,"column":42}},"loc":{"start":{"line":79,"column":6},"end":{"line":79,"column":36}}},"3":{"name":"(anonymous_17)","decl":{"start":{"line":90,"column":2},"end":{"line":90,"column":13}},"loc":{"start":{"line":90,"column":20},"end":{"line":92,"column":3}}},"4":{"name":"(anonymous_18)","decl":{"start":{"line":99,"column":16},"end":{"line":99,"column":31}},"loc":{"start":{"line":101,"column":28},"end":{"line":165,"column":null}}},"5":{"name":"(anonymous_20)","decl":{"start":{"line":152,"column":6},"end":{"line":152,"column":7}},"loc":{"start":{"line":152,"column":18},"end":{"line":162,"column":7}}},"6":{"name":"(anonymous_21)","decl":{"start":{"line":172,"column":16},"end":{"line":172,"column":30}},"loc":{"start":{"line":173,"column":40},"end":{"line":195,"column":null}}},"7":{"name":"(anonymous_23)","decl":{"start":{"line":184,"column":11},"end":{"line":184,"column":12}},"loc":{"start":{"line":184,"column":20},"end":{"line":184,"column":30}}},"8":{"name":"(anonymous_24)","decl":{"start":{"line":186,"column":34},"end":{"line":186,"column":35}},"loc":{"start":{"line":186,"column":45},"end":{"line":189,"column":6}}},"9":{"name":"(anonymous_25)","decl":{"start":{"line":201,"column":16},"end":{"line":201,"column":25}},"loc":{"start":{"line":201,"column":42},"end":{"line":248,"column":null}}},"10":{"name":"(anonymous_27)","decl":{"start":{"line":215,"column":11},"end":{"line":215,"column":12}},"loc":{"start":{"line":215,"column":18},"end":{"line":215,"column":34}}},"11":{"name":"(anonymous_28)","decl":{"start":{"line":223,"column":6},"end":{"line":223,"column":7}},"loc":{"start":{"line":223,"column":30},"end":{"line":225,"column":7}}},"12":{"name":"(anonymous_29)","decl":{"start":{"line":255,"column":10},"end":{"line":255,"column":26}},"loc":{"start":{"line":255,"column":39},"end":{"line":259,"column":3}}},"13":{"name":"(anonymous_30)","decl":{"start":{"line":264,"column":15},"end":{"line":264,"column":20}},"loc":{"start":{"line":264,"column":20},"end":{"line":308,"column":null}}},"14":{"name":"(anonymous_32)","decl":{"start":{"line":278,"column":21},"end":{"line":278,"column":null}},"loc":{"start":{"line":278,"column":21},"end":{"line":279,"column":null}}},"15":{"name":"(anonymous_33)","decl":{"start":{"line":285,"column":21},"end":{"line":285,"column":null}},"loc":{"start":{"line":285,"column":21},"end":{"line":286,"column":null}}},"16":{"name":"(anonymous_34)","decl":{"start":{"line":294,"column":18},"end":{"line":294,"column":21}},"loc":{"start":{"line":294,"column":23},"end":{"line":297,"column":7}}},"17":{"name":"(anonymous_35)","decl":{"start":{"line":301,"column":18},"end":{"line":301,"column":21}},"loc":{"start":{"line":301,"column":23},"end":{"line":303,"column":7}}},"18":{"name":"(anonymous_36)","decl":{"start":{"line":313,"column":15},"end":{"line":313,"column":19}},"loc":{"start":{"line":313,"column":19},"end":{"line":318,"column":null}}},"19":{"name":"(anonymous_38)","decl":{"start":{"line":326,"column":15},"end":{"line":326,"column":28}},"loc":{"start":{"line":326,"column":59},"end":{"line":369,"column":null}}},"20":{"name":"(anonymous_40)","decl":{"start":{"line":358,"column":6},"end":{"line":358,"column":7}},"loc":{"start":{"line":358,"column":15},"end":{"line":358,"column":null}}},"21":{"name":"(anonymous_41)","decl":{"start":{"line":375,"column":10},"end":{"line":375,"column":22}},"loc":{"start":{"line":375,"column":22},"end":{"line":382,"column":3}}},"22":{"name":"(anonymous_42)","decl":{"start":{"line":388,"column":9},"end":{"line":388,"column":20}},"loc":{"start":{"line":388,"column":37},"end":{"line":392,"column":3}}},"23":{"name":"(anonymous_43)","decl":{"start":{"line":399,"column":15},"end":{"line":399,"column":26}},"loc":{"start":{"line":399,"column":39},"end":{"line":429,"column":null}}},"24":{"name":"(anonymous_45)","decl":{"start":{"line":403,"column":23},"end":{"line":403,"column":30}},"loc":{"start":{"line":403,"column":49},"end":{"line":428,"column":6}}},"25":{"name":"(anonymous_46)","decl":{"start":{"line":403,"column":49},"end":{"line":403,"column":null}},"loc":{"start":{"line":403,"column":49},"end":{"line":428,"column":5}}},"26":{"name":"(anonymous_47)","decl":{"start":{"line":417,"column":17},"end":{"line":417,"column":18}},"loc":{"start":{"line":417,"column":23},"end":{"line":420,"column":11}}}},"branchMap":{"0":{"loc":{"start":{"line":82,"column":6},"end":{"line":82,"column":50}},"type":"binary-expr","locations":[{"start":{"line":82,"column":6},"end":{"line":82,"column":44}},{"start":{"line":82,"column":48},"end":{"line":82,"column":50}}]},"1":{"loc":{"start":{"line":83,"column":6},"end":{"line":83,"column":45}},"type":"binary-expr","locations":[{"start":{"line":83,"column":6},"end":{"line":83,"column":38}},{"start":{"line":83,"column":42},"end":{"line":83,"column":45}}]},"2":{"loc":{"start":{"line":91,"column":11},"end":{"line":91,"column":56}},"type":"binary-expr","locations":[{"start":{"line":91,"column":11},"end":{"line":91,"column":27}},{"start":{"line":91,"column":31},"end":{"line":91,"column":56}}]},"3":{"loc":{"start":{"line":133,"column":4},"end":{"line":136,"column":null}},"type":"if","locations":[{"start":{"line":133,"column":4},"end":{"line":136,"column":null}}]},"4":{"loc":{"start":{"line":148,"column":4},"end":{"line":148,"column":61}},"type":"if","locations":[{"start":{"line":148,"column":4},"end":{"line":148,"column":61}}]},"5":{"loc":{"start":{"line":191,"column":4},"end":{"line":191,"column":76}},"type":"if","locations":[{"start":{"line":191,"column":4},"end":{"line":191,"column":76}}]},"6":{"loc":{"start":{"line":204,"column":4},"end":{"line":211,"column":null}},"type":"if","locations":[{"start":{"line":204,"column":4},"end":{"line":211,"column":null}}]},"7":{"loc":{"start":{"line":215,"column":25},"end":{"line":215,"column":33}},"type":"binary-expr","locations":[{"start":{"line":215,"column":25},"end":{"line":215,"column":26}},{"start":{"line":215,"column":30},"end":{"line":215,"column":33}}]},"8":{"loc":{"start":{"line":265,"column":4},"end":{"line":265,"column":29}},"type":"if","locations":[{"start":{"line":265,"column":4},"end":{"line":265,"column":29}}]},"9":{"loc":{"start":{"line":268,"column":4},"end":{"line":290,"column":null}},"type":"if","locations":[{"start":{"line":268,"column":4},"end":{"line":290,"column":null}},{"start":{"line":277,"column":9},"end":{"line":290,"column":null}}]},"10":{"loc":{"start":{"line":269,"column":6},"end":{"line":270,"column":72}},"type":"binary-expr","locations":[{"start":{"line":269,"column":6},"end":{"line":269,"column":49}},{"start":{"line":270,"column":7},"end":{"line":270,"column":38}},{"start":{"line":270,"column":42},"end":{"line":270,"column":71}}]},"11":{"loc":{"start":{"line":277,"column":9},"end":{"line":290,"column":null}},"type":"if","locations":[{"start":{"line":277,"column":9},"end":{"line":290,"column":null}},{"start":{"line":283,"column":9},"end":{"line":290,"column":null}}]},"12":{"loc":{"start":{"line":314,"column":4},"end":{"line":314,"column":61}},"type":"if","locations":[{"start":{"line":314,"column":4},"end":{"line":314,"column":61}}]},"13":{"loc":{"start":{"line":327,"column":4},"end":{"line":327,"column":71}},"type":"if","locations":[{"start":{"line":327,"column":4},"end":{"line":327,"column":71}}]},"14":{"loc":{"start":{"line":328,"column":4},"end":{"line":328,"column":62}},"type":"if","locations":[{"start":{"line":328,"column":4},"end":{"line":328,"column":62}}]},"15":{"loc":{"start":{"line":329,"column":4},"end":{"line":329,"column":76}},"type":"if","locations":[{"start":{"line":329,"column":4},"end":{"line":329,"column":76}}]},"16":{"loc":{"start":{"line":335,"column":4},"end":{"line":354,"column":null}},"type":"if","locations":[{"start":{"line":335,"column":4},"end":{"line":354,"column":null}}]},"17":{"loc":{"start":{"line":336,"column":6},"end":{"line":337,"column":77}},"type":"binary-expr","locations":[{"start":{"line":336,"column":6},"end":{"line":336,"column":26}},{"start":{"line":337,"column":6},"end":{"line":337,"column":77}}]},"18":{"loc":{"start":{"line":358,"column":32},"end":{"line":358,"column":54}},"type":"cond-expr","locations":[{"start":{"line":358,"column":46},"end":{"line":358,"column":48}},{"start":{"line":358,"column":46},"end":{"line":358,"column":54}}]},"19":{"loc":{"start":{"line":358,"column":32},"end":{"line":358,"column":48}},"type":"binary-expr","locations":[{"start":{"line":358,"column":32},"end":{"line":358,"column":48}},{"start":{"line":358,"column":46},"end":{"line":358,"column":48}}]},"20":{"loc":{"start":{"line":376,"column":4},"end":{"line":376,"column":46}},"type":"if","locations":[{"start":{"line":376,"column":4},"end":{"line":376,"column":46}}]},"21":{"loc":{"start":{"line":378,"column":4},"end":{"line":380,"column":null}},"type":"if","locations":[{"start":{"line":378,"column":4},"end":{"line":380,"column":null}}]},"22":{"loc":{"start":{"line":400,"column":4},"end":{"line":400,"column":69}},"type":"if","locations":[{"start":{"line":400,"column":4},"end":{"line":400,"column":69}}]},"23":{"loc":{"start":{"line":401,"column":4},"end":{"line":401,"column":62}},"type":"if","locations":[{"start":{"line":401,"column":4},"end":{"line":401,"column":62}}]},"24":{"loc":{"start":{"line":423,"column":6},"end":{"line":427,"column":null}},"type":"if","locations":[{"start":{"line":423,"column":6},"end":{"line":427,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":20,"9":20,"10":20,"11":20,"12":20,"13":20,"14":0,"15":20,"16":0,"17":20,"18":36,"19":21,"20":21,"21":21,"22":21,"23":1,"24":1,"25":20,"26":20,"27":20,"28":20,"29":2,"30":20,"31":0,"32":0,"33":0,"34":0,"35":20,"36":18,"37":18,"38":18,"39":18,"40":18,"41":18,"42":0,"43":18,"44":18,"45":5,"46":5,"47":1,"48":1,"49":4,"50":4,"51":4,"52":4,"53":4,"54":4,"55":4,"56":4,"57":4,"58":4,"59":6,"60":6,"61":18,"62":0,"63":18,"64":18,"65":18,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":18,"74":0,"75":0,"76":18,"77":0,"78":18,"79":18,"80":18,"81":18,"82":18,"83":36,"84":11,"85":1,"86":10,"87":1,"88":9,"89":2,"90":7,"91":7,"92":7,"93":4,"94":4,"95":4,"96":4,"97":4,"98":4,"99":0,"100":0,"101":0,"102":4,"103":7,"104":7,"105":7,"106":7,"107":16,"108":14,"109":2,"110":2,"111":2,"112":2,"113":3,"114":3,"115":3,"116":7,"117":1,"118":6,"119":1,"120":5,"121":5,"122":5,"123":5,"124":5,"125":5,"126":5,"127":16,"128":16,"129":16,"130":5,"131":5,"132":5,"133":5,"134":1},"f":{"0":20,"1":0,"2":0,"3":36,"4":21,"5":0,"6":18,"7":18,"8":18,"9":5,"10":4,"11":4,"12":6,"13":18,"14":0,"15":0,"16":0,"17":0,"18":18,"19":11,"20":7,"21":16,"22":3,"23":7,"24":5,"25":5,"26":16},"b":{"0":[20,0],"1":[20,20],"2":[36,16],"3":[1],"4":[2],"5":[0],"6":[1],"7":[4,4],"8":[0],"9":[18,0],"10":[18,18,18],"11":[0,0],"12":[18],"13":[1],"14":[1],"15":[2],"16":[4],"17":[7,6],"18":[0,7],"19":[7,7],"20":[14],"21":[2],"22":[1],"23":[1],"24":[5]}}
,"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/reliability-score.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/reliability-score.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":39}},"1":{"start":{"line":3,"column":12},"end":{"line":3,"column":47}},"2":{"start":{"line":5,"column":33},"end":{"line":5,"column":36}},"3":{"start":{"line":34,"column":10},"end":{"line":42,"column":6}},"4":{"start":{"line":48,"column":10},"end":{"line":48,"column":44}},"5":{"start":{"line":53,"column":4},"end":{"line":53,"column":51}},"6":{"start":{"line":54,"column":4},"end":{"line":54,"column":38}},"7":{"start":{"line":63,"column":4},"end":{"line":65,"column":null}},"8":{"start":{"line":64,"column":6},"end":{"line":64,"column":53}},"9":{"start":{"line":67,"column":22},"end":{"line":67,"column":69}},"10":{"start":{"line":68,"column":4},"end":{"line":80,"column":6}},"11":{"start":{"line":70,"column":8},"end":{"line":76,"column":null}},"12":{"start":{"line":71,"column":10},"end":{"line":71,"column":24}},"13":{"start":{"line":72,"column":15},"end":{"line":76,"column":null}},"14":{"start":{"line":73,"column":10},"end":{"line":73,"column":26}},"15":{"start":{"line":74,"column":15},"end":{"line":76,"column":null}},"16":{"start":{"line":75,"column":10},"end":{"line":75,"column":23}},"17":{"start":{"line":77,"column":8},"end":{"line":77,"column":19}},"18":{"start":{"line":90,"column":22},"end":{"line":90,"column":46}},"19":{"start":{"line":91,"column":4},"end":{"line":96,"column":6}},"20":{"start":{"line":98,"column":4},"end":{"line":106,"column":null}},"21":{"start":{"line":99,"column":6},"end":{"line":104,"column":8}},"22":{"start":{"line":105,"column":6},"end":{"line":105,"column":44}},"23":{"start":{"line":108,"column":4},"end":{"line":111,"column":7}},"24":{"start":{"line":113,"column":4},"end":{"line":113,"column":26}},"25":{"start":{"line":114,"column":4},"end":{"line":114,"column":53}},"26":{"start":{"line":116,"column":4},"end":{"line":120,"column":6}},"27":{"start":{"line":122,"column":4},"end":{"line":126,"column":6}},"28":{"start":{"line":128,"column":4},"end":{"line":130,"column":6}},"29":{"start":{"line":133,"column":4},"end":{"line":157,"column":null}},"30":{"start":{"line":134,"column":44},"end":{"line":136,"column":42}},"31":{"start":{"line":138,"column":6},"end":{"line":142,"column":null}},"32":{"start":{"line":139,"column":8},"end":{"line":141,"column":null}},"33":{"start":{"line":140,"column":10},"end":{"line":140,"column":50}},"34":{"start":{"line":143,"column":6},"end":{"line":143,"column":61}},"35":{"start":{"line":145,"column":6},"end":{"line":145,"column":27}},"36":{"start":{"line":146,"column":6},"end":{"line":146,"column":55}},"37":{"start":{"line":147,"column":27},"end":{"line":147,"column":48}},"38":{"start":{"line":148,"column":6},"end":{"line":148,"column":43}},"39":{"start":{"line":149,"column":6},"end":{"line":153,"column":8}},"40":{"start":{"line":154,"column":6},"end":{"line":156,"column":8}},"41":{"start":{"line":166,"column":4},"end":{"line":191,"column":null}},"42":{"start":{"line":167,"column":19},"end":{"line":167,"column":49}},"43":{"start":{"line":168,"column":24},"end":{"line":168,"column":65}},"44":{"start":{"line":169,"column":21},"end":{"line":169,"column":59}},"45":{"start":{"line":171,"column":6},"end":{"line":187,"column":null}},"46":{"start":{"line":172,"column":8},"end":{"line":172,"column":34}},"47":{"start":{"line":173,"column":8},"end":{"line":176,"column":10}},"48":{"start":{"line":177,"column":13},"end":{"line":187,"column":null}},"49":{"start":{"line":178,"column":8},"end":{"line":178,"column":49}},"50":{"start":{"line":179,"column":8},"end":{"line":182,"column":10}},"51":{"start":{"line":184,"column":22},"end":{"line":184,"column":44}},"52":{"start":{"line":185,"column":8},"end":{"line":185,"column":38}},"53":{"start":{"line":186,"column":8},"end":{"line":186,"column":72}},"54":{"start":{"line":188,"column":6},"end":{"line":188,"column":37}},"55":{"start":{"line":190,"column":6},"end":{"line":190,"column":30}},"56":{"start":{"line":199,"column":20},"end":{"line":199,"column":44}},"57":{"start":{"line":200,"column":4},"end":{"line":203,"column":7}},"58":{"start":{"line":201,"column":20},"end":{"line":201,"column":41}},"59":{"start":{"line":202,"column":6},"end":{"line":202,"column":31}},"60":{"start":{"line":207,"column":17},"end":{"line":207,"column":52}},"61":{"start":{"line":208,"column":4},"end":{"line":212,"column":null}},"62":{"start":{"line":209,"column":6},"end":{"line":209,"column":21}},"63":{"start":{"line":211,"column":6},"end":{"line":211,"column":25}},"64":{"start":{"line":30,"column":0},"end":{"line":30,"column":21}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":52,"column":2},"end":{"line":52,"column":14}},"loc":{"start":{"line":52,"column":62},"end":{"line":55,"column":3}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":62,"column":10},"end":{"line":62,"column":25}},"loc":{"start":{"line":62,"column":40},"end":{"line":81,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":69,"column":6},"end":{"line":69,"column":7}},"loc":{"start":{"line":69,"column":29},"end":{"line":78,"column":7}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":89,"column":9},"end":{"line":89,"column":18}},"loc":{"start":{"line":89,"column":68},"end":{"line":158,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":165,"column":9},"end":{"line":165,"column":17}},"loc":{"start":{"line":165,"column":32},"end":{"line":192,"column":3}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":198,"column":9},"end":{"line":198,"column":18}},"loc":{"start":{"line":198,"column":18},"end":{"line":204,"column":3}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":200,"column":23},"end":{"line":200,"column":24}},"loc":{"start":{"line":200,"column":36},"end":{"line":203,"column":5}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":206,"column":9},"end":{"line":206,"column":18}},"loc":{"start":{"line":206,"column":33},"end":{"line":213,"column":3}}}},"branchMap":{"0":{"loc":{"start":{"line":63,"column":4},"end":{"line":65,"column":null}},"type":"if","locations":[{"start":{"line":63,"column":4},"end":{"line":65,"column":null}}]},"1":{"loc":{"start":{"line":70,"column":8},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":70,"column":8},"end":{"line":76,"column":null}},{"start":{"line":72,"column":15},"end":{"line":76,"column":null}}]},"2":{"loc":{"start":{"line":72,"column":15},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":72,"column":15},"end":{"line":76,"column":null}},{"start":{"line":74,"column":15},"end":{"line":76,"column":null}}]},"3":{"loc":{"start":{"line":74,"column":15},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":74,"column":15},"end":{"line":76,"column":null}}]},"4":{"loc":{"start":{"line":98,"column":4},"end":{"line":106,"column":null}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":106,"column":null}}]},"5":{"loc":{"start":{"line":124,"column":8},"end":{"line":124,"column":null}},"type":"cond-expr","locations":[{"start":{"line":124,"column":32},"end":{"line":124,"column":34}},{"start":{"line":124,"column":32},"end":{"line":124,"column":null}}]},"6":{"loc":{"start":{"line":124,"column":8},"end":{"line":124,"column":34}},"type":"binary-expr","locations":[{"start":{"line":124,"column":8},"end":{"line":124,"column":34}},{"start":{"line":124,"column":32},"end":{"line":124,"column":34}}]},"7":{"loc":{"start":{"line":133,"column":4},"end":{"line":157,"column":null}},"type":"if","locations":[{"start":{"line":133,"column":4},"end":{"line":157,"column":null}}]},"8":{"loc":{"start":{"line":139,"column":8},"end":{"line":141,"column":null}},"type":"if","locations":[{"start":{"line":139,"column":8},"end":{"line":141,"column":null}}]},"9":{"loc":{"start":{"line":166,"column":4},"end":{"line":191,"column":null}},"type":"if","locations":[{"start":{"line":166,"column":4},"end":{"line":191,"column":null}},{"start":{"line":189,"column":11},"end":{"line":191,"column":null}}]},"10":{"loc":{"start":{"line":171,"column":6},"end":{"line":187,"column":null}},"type":"if","locations":[{"start":{"line":171,"column":6},"end":{"line":187,"column":null}},{"start":{"line":177,"column":13},"end":{"line":187,"column":null}}]},"11":{"loc":{"start":{"line":177,"column":13},"end":{"line":187,"column":null}},"type":"if","locations":[{"start":{"line":177,"column":13},"end":{"line":187,"column":null}},{"start":{"line":183,"column":13},"end":{"line":187,"column":null}}]},"12":{"loc":{"start":{"line":207,"column":17},"end":{"line":207,"column":52}},"type":"binary-expr","locations":[{"start":{"line":207,"column":17},"end":{"line":207,"column":47}},{"start":{"line":207,"column":51},"end":{"line":207,"column":52}}]},"13":{"loc":{"start":{"line":207,"column":17},"end":{"line":207,"column":47}},"type":"cond-expr","locations":[{"start":{"line":207,"column":41},"end":{"line":207,"column":43}},{"start":{"line":207,"column":41},"end":{"line":207,"column":47}}]},"14":{"loc":{"start":{"line":207,"column":17},"end":{"line":207,"column":43}},"type":"binary-expr","locations":[{"start":{"line":207,"column":17},"end":{"line":207,"column":43}},{"start":{"line":207,"column":41},"end":{"line":207,"column":43}}]},"15":{"loc":{"start":{"line":208,"column":4},"end":{"line":212,"column":null}},"type":"if","locations":[{"start":{"line":208,"column":4},"end":{"line":212,"column":null}},{"start":{"line":210,"column":11},"end":{"line":212,"column":null}}]}},"s":{"0":2,"1":2,"2":2,"3":30,"4":30,"5":30,"6":30,"7":756,"8":1,"9":755,"10":755,"11":31939,"12":30631,"13":1308,"14":44,"15":1264,"16":1264,"17":31939,"18":376,"19":376,"20":376,"21":21,"22":21,"23":376,"24":376,"25":376,"26":376,"27":376,"28":376,"29":376,"30":3,"31":3,"32":303,"33":301,"34":3,"35":3,"36":3,"37":3,"38":3,"39":3,"40":3,"41":774,"42":771,"43":771,"44":771,"45":771,"46":38,"47":38,"48":733,"49":214,"50":214,"51":519,"52":519,"53":519,"54":771,"55":3,"56":1,"57":1,"58":3,"59":3,"60":6,"61":6,"62":2,"63":4,"64":2},"f":{"0":30,"1":756,"2":31939,"3":376,"4":774,"5":1,"6":3,"7":6},"b":{"0":[1],"1":[30631,1308],"2":[44,1264],"3":[1264],"4":[21],"5":[0,376],"6":[376,376],"7":[3],"8":[301],"9":[771,3],"10":[38,733],"11":[214,519],"12":[6,2],"13":[2,4],"14":[6,6],"15":[2,4]}}
,"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/request-cache.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/request-cache.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":56}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":39}},"2":{"start":{"line":4,"column":12},"end":{"line":4,"column":43}},"3":{"start":{"line":22,"column":22},"end":{"line":22,"column":62}},"4":{"start":{"line":12,"column":10},"end":{"line":20,"column":6}},"5":{"start":{"line":35,"column":4},"end":{"line":40,"column":7}},"6":{"start":{"line":48,"column":4},"end":{"line":48,"column":33}},"7":{"start":{"line":56,"column":4},"end":{"line":56,"column":33}},"8":{"start":{"line":64,"column":16},"end":{"line":64,"column":26}},"9":{"start":{"line":66,"column":4},"end":{"line":66,"column":48}},"10":{"start":{"line":67,"column":4},"end":{"line":73,"column":null}},"11":{"start":{"line":68,"column":6},"end":{"line":72,"column":null}},"12":{"start":{"line":69,"column":8},"end":{"line":69,"column":42}},"13":{"start":{"line":70,"column":8},"end":{"line":70,"column":45}},"14":{"start":{"line":71,"column":8},"end":{"line":71,"column":34}},"15":{"start":{"line":10,"column":0},"end":{"line":10,"column":21}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":22,"column":2},"end":{"line":22,"column":22}},"loc":{"start":{"line":22,"column":62},"end":{"line":22,"column":66}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":30,"column":9},"end":{"line":30,"column":19}},"loc":{"start":{"line":33,"column":34},"end":{"line":41,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":47,"column":9},"end":{"line":47,"column":19}},"loc":{"start":{"line":47,"column":30},"end":{"line":49,"column":3}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":55,"column":9},"end":{"line":55,"column":22}},"loc":{"start":{"line":55,"column":35},"end":{"line":57,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":63,"column":9},"end":{"line":63,"column":22}},"loc":{"start":{"line":63,"column":38},"end":{"line":74,"column":3}}}},"branchMap":{"0":{"loc":{"start":{"line":68,"column":6},"end":{"line":72,"column":null}},"type":"if","locations":[{"start":{"line":68,"column":6},"end":{"line":72,"column":null}}]}},"s":{"0":2,"1":2,"2":2,"3":23,"4":23,"5":11,"6":12,"7":10,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":2},"f":{"0":23,"1":11,"2":12,"3":10,"4":1},"b":{"0":[1]}}
,"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/utils.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/utils.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}},"1":{"start":{"line":3,"column":13},"end":{"line":3,"column":55}}},"fnMap":{},"branchMap":{},"s":{"0":3,"1":3},"f":{},"b":{}}
{"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/index.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/index.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":null}},"1":{"start":{"line":12,"column":0},"end":{"line":12,"column":45}},"2":{"start":{"line":13,"column":0},"end":{"line":13,"column":32}},"3":{"start":{"line":14,"column":0},"end":{"line":14,"column":32}},"4":{"start":{"line":15,"column":0},"end":{"line":15,"column":62}},"5":{"start":{"line":16,"column":0},"end":{"line":16,"column":43}},"6":{"start":{"line":17,"column":0},"end":{"line":17,"column":39}},"7":{"start":{"line":19,"column":12},"end":{"line":19,"column":26}},"8":{"start":{"line":20,"column":20},"end":{"line":20,"column":34}},"9":{"start":{"line":72,"column":21},"end":{"line":72,"column":36}},"10":{"start":{"line":73,"column":12},"end":{"line":73,"column":65}},"11":{"start":{"line":74,"column":12},"end":{"line":74,"column":67}},"12":{"start":{"line":56,"column":10},"end":{"line":56,"column":41}},"13":{"start":{"line":63,"column":10},"end":{"line":63,"column":37}},"14":{"start":{"line":76,"column":4},"end":{"line":76,"column":79}},"15":{"start":{"line":76,"column":54},"end":{"line":76,"column":77}},"16":{"start":{"line":77,"column":4},"end":{"line":79,"column":6}},"17":{"start":{"line":78,"column":6},"end":{"line":78,"column":36}},"18":{"start":{"line":80,"column":4},"end":{"line":83,"column":6}},"19":{"start":{"line":90,"column":4},"end":{"line":90,"column":57}},"20":{"start":{"line":106,"column":4},"end":{"line":170,"column":null}},"21":{"start":{"line":107,"column":6},"end":{"line":107,"column":37}},"22":{"start":{"line":108,"column":6},"end":{"line":108,"column":42}},"23":{"start":{"line":109,"column":47},"end":{"line":124,"column":null}},"24":{"start":{"line":131,"column":10},"end":{"line":131,"column":34}},"25":{"start":{"line":134,"column":6},"end":{"line":137,"column":null}},"26":{"start":{"line":135,"column":8},"end":{"line":135,"column":80}},"27":{"start":{"line":136,"column":8},"end":{"line":136,"column":56}},"28":{"start":{"line":139,"column":29},"end":{"line":139,"column":65}},"29":{"start":{"line":141,"column":6},"end":{"line":145,"column":8}},"30":{"start":{"line":146,"column":6},"end":{"line":146,"column":57}},"31":{"start":{"line":149,"column":6},"end":{"line":149,"column":63}},"32":{"start":{"line":149,"column":36},"end":{"line":149,"column":63}},"33":{"start":{"line":150,"column":6},"end":{"line":164,"column":8}},"34":{"start":{"line":154,"column":10},"end":{"line":162,"column":null}},"35":{"start":{"line":155,"column":28},"end":{"line":155,"column":55}},"36":{"start":{"line":156,"column":12},"end":{"line":156,"column":49}},"37":{"start":{"line":158,"column":12},"end":{"line":161,"column":14}},"38":{"start":{"line":165,"column":6},"end":{"line":165,"column":28}},"39":{"start":{"line":167,"column":6},"end":{"line":167,"column":18}},"40":{"start":{"line":169,"column":6},"end":{"line":169,"column":38}},"41":{"start":{"line":181,"column":4},"end":{"line":181,"column":39}},"42":{"start":{"line":185,"column":10},"end":{"line":190,"column":31}},"43":{"start":{"line":190,"column":20},"end":{"line":190,"column":30}},"44":{"start":{"line":192,"column":4},"end":{"line":195,"column":8}},"45":{"start":{"line":192,"column":45},"end":{"line":195,"column":6}},"46":{"start":{"line":197,"column":4},"end":{"line":197,"column":76}},"47":{"start":{"line":197,"column":37},"end":{"line":197,"column":76}},"48":{"start":{"line":199,"column":4},"end":{"line":199,"column":61}},"49":{"start":{"line":200,"column":4},"end":{"line":200,"column":26}},"50":{"start":{"line":209,"column":18},"end":{"line":209,"column":58}},"51":{"start":{"line":210,"column":4},"end":{"line":217,"column":null}},"52":{"start":{"line":211,"column":6},"end":{"line":215,"column":8}},"53":{"start":{"line":216,"column":6},"end":{"line":216,"column":13}},"54":{"start":{"line":219,"column":20},"end":{"line":221,"column":35}},"55":{"start":{"line":221,"column":18},"end":{"line":221,"column":34}},"56":{"start":{"line":224,"column":21},"end":{"line":231,"column":null}},"57":{"start":{"line":230,"column":8},"end":{"line":230,"column":55}},"58":{"start":{"line":234,"column":25},"end":{"line":234,"column":63}},"59":{"start":{"line":235,"column":4},"end":{"line":243,"column":6}},"60":{"start":{"line":245,"column":4},"end":{"line":245,"column":28}},"61":{"start":{"line":246,"column":4},"end":{"line":250,"column":6}},"62":{"start":{"line":251,"column":4},"end":{"line":251,"column":51}},"63":{"start":{"line":253,"column":4},"end":{"line":253,"column":78}},"64":{"start":{"line":263,"column":4},"end":{"line":263,"column":80}},"65":{"start":{"line":264,"column":4},"end":{"line":264,"column":45}},"66":{"start":{"line":271,"column":4},"end":{"line":271,"column":29}},"67":{"start":{"line":271,"column":22},"end":{"line":271,"column":29}},"68":{"start":{"line":273,"column":4},"end":{"line":284,"column":null}},"69":{"start":{"line":274,"column":6},"end":{"line":274,"column":61}},"70":{"start":{"line":275,"column":6},"end":{"line":276,"column":71}},"71":{"start":{"line":278,"column":6},"end":{"line":278,"column":60}},"72":{"start":{"line":279,"column":6},"end":{"line":281,"column":33}},"73":{"start":{"line":279,"column":21},"end":{"line":280,"column":null}},"74":{"start":{"line":283,"column":6},"end":{"line":283,"column":31}},"75":{"start":{"line":287,"column":4},"end":{"line":296,"column":6}},"76":{"start":{"line":288,"column":12},"end":{"line":288,"column":71}},"77":{"start":{"line":292,"column":10},"end":{"line":292,"column":59}},"78":{"start":{"line":293,"column":10},"end":{"line":293,"column":74}},"79":{"start":{"line":297,"column":4},"end":{"line":306,"column":6}},"80":{"start":{"line":298,"column":12},"end":{"line":298,"column":70}},"81":{"start":{"line":302,"column":10},"end":{"line":302,"column":58}},"82":{"start":{"line":303,"column":10},"end":{"line":303,"column":73}},"83":{"start":{"line":309,"column":4},"end":{"line":314,"column":6}},"84":{"start":{"line":311,"column":8},"end":{"line":311,"column":58}},"85":{"start":{"line":312,"column":8},"end":{"line":312,"column":58}},"86":{"start":{"line":316,"column":4},"end":{"line":320,"column":6}},"87":{"start":{"line":318,"column":8},"end":{"line":318,"column":67}},"88":{"start":{"line":327,"column":4},"end":{"line":327,"column":61}},"89":{"start":{"line":327,"column":34},"end":{"line":327,"column":61}},"90":{"start":{"line":328,"column":4},"end":{"line":330,"column":null}},"91":{"start":{"line":329,"column":6},"end":{"line":329,"column":30}},"92":{"start":{"line":340,"column":4},"end":{"line":340,"column":71}},"93":{"start":{"line":340,"column":23},"end":{"line":340,"column":71}},"94":{"start":{"line":341,"column":4},"end":{"line":341,"column":62}},"95":{"start":{"line":341,"column":29},"end":{"line":341,"column":62}},"96":{"start":{"line":342,"column":4},"end":{"line":342,"column":76}},"97":{"start":{"line":342,"column":33},"end":{"line":342,"column":76}},"98":{"start":{"line":344,"column":33},"end":{"line":345,"column":null}},"99":{"start":{"line":347,"column":36},"end":{"line":347,"column":38}},"100":{"start":{"line":348,"column":4},"end":{"line":364,"column":null}},"101":{"start":{"line":352,"column":6},"end":{"line":352,"column":75}},"102":{"start":{"line":353,"column":6},"end":{"line":353,"column":49}},"103":{"start":{"line":354,"column":6},"end":{"line":362,"column":null}},"104":{"start":{"line":355,"column":8},"end":{"line":358,"column":10}},"105":{"start":{"line":360,"column":8},"end":{"line":360,"column":59}},"106":{"start":{"line":361,"column":8},"end":{"line":361,"column":38}},"107":{"start":{"line":363,"column":6},"end":{"line":363,"column":40}},"108":{"start":{"line":367,"column":30},"end":{"line":368,"column":null}},"109":{"start":{"line":368,"column":16},"end":{"line":368,"column":null}},"110":{"start":{"line":370,"column":21},"end":{"line":370,"column":69}},"111":{"start":{"line":371,"column":4},"end":{"line":378,"column":6}},"112":{"start":{"line":386,"column":4},"end":{"line":386,"column":46}},"113":{"start":{"line":386,"column":33},"end":{"line":386,"column":46}},"114":{"start":{"line":387,"column":16},"end":{"line":387,"column":26}},"115":{"start":{"line":388,"column":4},"end":{"line":390,"column":null}},"116":{"start":{"line":389,"column":6},"end":{"line":389,"column":69}},"117":{"start":{"line":391,"column":4},"end":{"line":391,"column":40}},"118":{"start":{"line":399,"column":16},"end":{"line":399,"column":26}},"119":{"start":{"line":400,"column":4},"end":{"line":400,"column":44}},"120":{"start":{"line":401,"column":4},"end":{"line":401,"column":66}},"121":{"start":{"line":411,"column":4},"end":{"line":413,"column":null}},"122":{"start":{"line":412,"column":6},"end":{"line":412,"column":52}},"123":{"start":{"line":416,"column":4},"end":{"line":418,"column":null}},"124":{"start":{"line":417,"column":6},"end":{"line":417,"column":39}},"125":{"start":{"line":420,"column":4},"end":{"line":459,"column":7}},"126":{"start":{"line":420,"column":49},"end":{"line":459,"column":6}},"127":{"start":{"line":421,"column":22},"end":{"line":421,"column":37}},"128":{"start":{"line":422,"column":23},"end":{"line":422,"column":43}},"129":{"start":{"line":425,"column":6},"end":{"line":425,"column":57}},"130":{"start":{"line":428,"column":34},"end":{"line":436,"column":8}},"131":{"start":{"line":429,"column":8},"end":{"line":435,"column":11}},"132":{"start":{"line":439,"column":6},"end":{"line":458,"column":null}},"133":{"start":{"line":440,"column":24},"end":{"line":440,"column":69}},"134":{"start":{"line":442,"column":32},"end":{"line":443,"column":null}},"135":{"start":{"line":443,"column":22},"end":{"line":443,"column":50}},"136":{"start":{"line":446,"column":8},"end":{"line":451,"column":null}},"137":{"start":{"line":448,"column":10},"end":{"line":448,"column":37}},"138":{"start":{"line":449,"column":10},"end":{"line":449,"column":47}},"139":{"start":{"line":450,"column":10},"end":{"line":450,"column":52}},"140":{"start":{"line":454,"column":8},"end":{"line":454,"column":56}},"141":{"start":{"line":455,"column":8},"end":{"line":455,"column":35}},"142":{"start":{"line":456,"column":8},"end":{"line":456,"column":45}},"143":{"start":{"line":457,"column":8},"end":{"line":457,"column":50}},"144":{"start":{"line":53,"column":0},"end":{"line":53,"column":21}}},"fnMap":{"0":{"name":"(anonymous_14)","decl":{"start":{"line":71,"column":2},"end":{"line":71,"column":null}},"loc":{"start":{"line":74,"column":67},"end":{"line":84,"column":3}}},"1":{"name":"(anonymous_15)","decl":{"start":{"line":76,"column":41},"end":{"line":76,"column":42}},"loc":{"start":{"line":76,"column":54},"end":{"line":76,"column":77}}},"2":{"name":"(anonymous_16)","decl":{"start":{"line":77,"column":41},"end":{"line":77,"column":42}},"loc":{"start":{"line":78,"column":6},"end":{"line":78,"column":36}}},"3":{"name":"(anonymous_17)","decl":{"start":{"line":89,"column":2},"end":{"line":89,"column":13}},"loc":{"start":{"line":89,"column":20},"end":{"line":91,"column":3}}},"4":{"name":"(anonymous_18)","decl":{"start":{"line":98,"column":16},"end":{"line":98,"column":31}},"loc":{"start":{"line":100,"column":28},"end":{"line":171,"column":null}}},"5":{"name":"(anonymous_20)","decl":{"start":{"line":153,"column":8},"end":{"line":153,"column":9}},"loc":{"start":{"line":153,"column":20},"end":{"line":163,"column":9}}},"6":{"name":"(anonymous_21)","decl":{"start":{"line":178,"column":16},"end":{"line":178,"column":30}},"loc":{"start":{"line":179,"column":40},"end":{"line":201,"column":null}}},"7":{"name":"(anonymous_23)","decl":{"start":{"line":190,"column":11},"end":{"line":190,"column":12}},"loc":{"start":{"line":190,"column":20},"end":{"line":190,"column":30}}},"8":{"name":"(anonymous_24)","decl":{"start":{"line":192,"column":34},"end":{"line":192,"column":35}},"loc":{"start":{"line":192,"column":45},"end":{"line":195,"column":6}}},"9":{"name":"(anonymous_25)","decl":{"start":{"line":207,"column":16},"end":{"line":207,"column":25}},"loc":{"start":{"line":207,"column":42},"end":{"line":254,"column":null}}},"10":{"name":"(anonymous_27)","decl":{"start":{"line":221,"column":11},"end":{"line":221,"column":12}},"loc":{"start":{"line":221,"column":18},"end":{"line":221,"column":34}}},"11":{"name":"(anonymous_28)","decl":{"start":{"line":229,"column":6},"end":{"line":229,"column":7}},"loc":{"start":{"line":229,"column":30},"end":{"line":231,"column":7}}},"12":{"name":"(anonymous_29)","decl":{"start":{"line":261,"column":10},"end":{"line":261,"column":26}},"loc":{"start":{"line":261,"column":39},"end":{"line":265,"column":3}}},"13":{"name":"(anonymous_30)","decl":{"start":{"line":270,"column":15},"end":{"line":270,"column":20}},"loc":{"start":{"line":270,"column":20},"end":{"line":321,"column":null}}},"14":{"name":"(anonymous_32)","decl":{"start":{"line":279,"column":21},"end":{"line":279,"column":null}},"loc":{"start":{"line":279,"column":21},"end":{"line":280,"column":null}}},"15":{"name":"(anonymous_33)","decl":{"start":{"line":288,"column":6},"end":{"line":288,"column":9}},"loc":{"start":{"line":288,"column":12},"end":{"line":288,"column":71}}},"16":{"name":"(anonymous_34)","decl":{"start":{"line":291,"column":17},"end":{"line":291,"column":18}},"loc":{"start":{"line":291,"column":32},"end":{"line":294,"column":9}}},"17":{"name":"(anonymous_35)","decl":{"start":{"line":298,"column":6},"end":{"line":298,"column":9}},"loc":{"start":{"line":298,"column":12},"end":{"line":298,"column":70}}},"18":{"name":"(anonymous_36)","decl":{"start":{"line":301,"column":17},"end":{"line":301,"column":18}},"loc":{"start":{"line":301,"column":32},"end":{"line":304,"column":9}}},"19":{"name":"(anonymous_37)","decl":{"start":{"line":310,"column":18},"end":{"line":310,"column":21}},"loc":{"start":{"line":310,"column":23},"end":{"line":313,"column":7}}},"20":{"name":"(anonymous_38)","decl":{"start":{"line":317,"column":18},"end":{"line":317,"column":21}},"loc":{"start":{"line":317,"column":23},"end":{"line":319,"column":7}}},"21":{"name":"(anonymous_39)","decl":{"start":{"line":326,"column":15},"end":{"line":326,"column":19}},"loc":{"start":{"line":326,"column":19},"end":{"line":331,"column":null}}},"22":{"name":"(anonymous_41)","decl":{"start":{"line":339,"column":15},"end":{"line":339,"column":28}},"loc":{"start":{"line":339,"column":59},"end":{"line":379,"column":null}}},"23":{"name":"(anonymous_43)","decl":{"start":{"line":368,"column":6},"end":{"line":368,"column":7}},"loc":{"start":{"line":368,"column":15},"end":{"line":368,"column":null}}},"24":{"name":"(anonymous_44)","decl":{"start":{"line":385,"column":10},"end":{"line":385,"column":22}},"loc":{"start":{"line":385,"column":22},"end":{"line":392,"column":3}}},"25":{"name":"(anonymous_45)","decl":{"start":{"line":398,"column":9},"end":{"line":398,"column":20}},"loc":{"start":{"line":398,"column":37},"end":{"line":402,"column":3}}},"26":{"name":"(anonymous_46)","decl":{"start":{"line":409,"column":15},"end":{"line":409,"column":26}},"loc":{"start":{"line":409,"column":39},"end":{"line":460,"column":null}}},"27":{"name":"(anonymous_48)","decl":{"start":{"line":420,"column":23},"end":{"line":420,"column":30}},"loc":{"start":{"line":420,"column":49},"end":{"line":459,"column":6}}},"28":{"name":"(anonymous_49)","decl":{"start":{"line":420,"column":49},"end":{"line":420,"column":null}},"loc":{"start":{"line":420,"column":49},"end":{"line":459,"column":5}}},"29":{"name":"(anonymous_50)","decl":{"start":{"line":428,"column":47},"end":{"line":428,"column":48}},"loc":{"start":{"line":428,"column":59},"end":{"line":436,"column":7}}},"30":{"name":"(anonymous_51)","decl":{"start":{"line":443,"column":10},"end":{"line":443,"column":11}},"loc":{"start":{"line":443,"column":22},"end":{"line":443,"column":50}}}},"branchMap":{"0":{"loc":{"start":{"line":81,"column":6},"end":{"line":81,"column":50}},"type":"binary-expr","locations":[{"start":{"line":81,"column":6},"end":{"line":81,"column":44}},{"start":{"line":81,"column":48},"end":{"line":81,"column":50}}]},"1":{"loc":{"start":{"line":82,"column":6},"end":{"line":82,"column":45}},"type":"binary-expr","locations":[{"start":{"line":82,"column":6},"end":{"line":82,"column":38}},{"start":{"line":82,"column":42},"end":{"line":82,"column":45}}]},"2":{"loc":{"start":{"line":90,"column":11},"end":{"line":90,"column":56}},"type":"binary-expr","locations":[{"start":{"line":90,"column":11},"end":{"line":90,"column":27}},{"start":{"line":90,"column":31},"end":{"line":90,"column":56}}]},"3":{"loc":{"start":{"line":134,"column":6},"end":{"line":137,"column":null}},"type":"if","locations":[{"start":{"line":134,"column":6},"end":{"line":137,"column":null}}]},"4":{"loc":{"start":{"line":149,"column":6},"end":{"line":149,"column":63}},"type":"if","locations":[{"start":{"line":149,"column":6},"end":{"line":149,"column":63}}]},"5":{"loc":{"start":{"line":197,"column":4},"end":{"line":197,"column":76}},"type":"if","locations":[{"start":{"line":197,"column":4},"end":{"line":197,"column":76}}]},"6":{"loc":{"start":{"line":210,"column":4},"end":{"line":217,"column":null}},"type":"if","locations":[{"start":{"line":210,"column":4},"end":{"line":217,"column":null}}]},"7":{"loc":{"start":{"line":221,"column":25},"end":{"line":221,"column":33}},"type":"binary-expr","locations":[{"start":{"line":221,"column":25},"end":{"line":221,"column":26}},{"start":{"line":221,"column":30},"end":{"line":221,"column":33}}]},"8":{"loc":{"start":{"line":271,"column":4},"end":{"line":271,"column":29}},"type":"if","locations":[{"start":{"line":271,"column":4},"end":{"line":271,"column":29}}]},"9":{"loc":{"start":{"line":273,"column":4},"end":{"line":284,"column":null}},"type":"if","locations":[{"start":{"line":273,"column":4},"end":{"line":284,"column":null}},{"start":{"line":277,"column":11},"end":{"line":284,"column":null}}]},"10":{"loc":{"start":{"line":327,"column":4},"end":{"line":327,"column":61}},"type":"if","locations":[{"start":{"line":327,"column":4},"end":{"line":327,"column":61}}]},"11":{"loc":{"start":{"line":340,"column":4},"end":{"line":340,"column":71}},"type":"if","locations":[{"start":{"line":340,"column":4},"end":{"line":340,"column":71}}]},"12":{"loc":{"start":{"line":341,"column":4},"end":{"line":341,"column":62}},"type":"if","locations":[{"start":{"line":341,"column":4},"end":{"line":341,"column":62}}]},"13":{"loc":{"start":{"line":342,"column":4},"end":{"line":342,"column":76}},"type":"if","locations":[{"start":{"line":342,"column":4},"end":{"line":342,"column":76}}]},"14":{"loc":{"start":{"line":348,"column":4},"end":{"line":364,"column":null}},"type":"if","locations":[{"start":{"line":348,"column":4},"end":{"line":364,"column":null}}]},"15":{"loc":{"start":{"line":349,"column":6},"end":{"line":350,"column":77}},"type":"binary-expr","locations":[{"start":{"line":349,"column":6},"end":{"line":349,"column":26}},{"start":{"line":350,"column":6},"end":{"line":350,"column":77}}]},"16":{"loc":{"start":{"line":368,"column":32},"end":{"line":368,"column":54}},"type":"cond-expr","locations":[{"start":{"line":368,"column":46},"end":{"line":368,"column":48}},{"start":{"line":368,"column":46},"end":{"line":368,"column":54}}]},"17":{"loc":{"start":{"line":368,"column":32},"end":{"line":368,"column":48}},"type":"binary-expr","locations":[{"start":{"line":368,"column":32},"end":{"line":368,"column":48}},{"start":{"line":368,"column":46},"end":{"line":368,"column":48}}]},"18":{"loc":{"start":{"line":386,"column":4},"end":{"line":386,"column":46}},"type":"if","locations":[{"start":{"line":386,"column":4},"end":{"line":386,"column":46}}]},"19":{"loc":{"start":{"line":388,"column":4},"end":{"line":390,"column":null}},"type":"if","locations":[{"start":{"line":388,"column":4},"end":{"line":390,"column":null}}]},"20":{"loc":{"start":{"line":411,"column":4},"end":{"line":413,"column":null}},"type":"if","locations":[{"start":{"line":411,"column":4},"end":{"line":413,"column":null}}]},"21":{"loc":{"start":{"line":416,"column":4},"end":{"line":418,"column":null}},"type":"if","locations":[{"start":{"line":416,"column":4},"end":{"line":418,"column":null}}]},"22":{"loc":{"start":{"line":446,"column":8},"end":{"line":451,"column":null}},"type":"if","locations":[{"start":{"line":446,"column":8},"end":{"line":451,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":22,"10":22,"11":22,"12":22,"13":22,"14":22,"15":0,"16":22,"17":0,"18":22,"19":38,"20":24,"21":24,"22":24,"23":24,"24":24,"25":23,"26":1,"27":1,"28":22,"29":22,"30":22,"31":22,"32":2,"33":22,"34":0,"35":0,"36":0,"37":0,"38":22,"39":2,"40":24,"41":21,"42":21,"43":21,"44":20,"45":20,"46":20,"47":0,"48":20,"49":20,"50":5,"51":5,"52":1,"53":1,"54":4,"55":4,"56":4,"57":4,"58":4,"59":4,"60":4,"61":4,"62":4,"63":4,"64":6,"65":6,"66":20,"67":0,"68":20,"69":20,"70":20,"71":0,"72":0,"73":0,"74":0,"75":20,"76":21,"77":1,"78":1,"79":20,"80":21,"81":1,"82":1,"83":20,"84":0,"85":0,"86":20,"87":0,"88":20,"89":20,"90":20,"91":40,"92":11,"93":1,"94":10,"95":1,"96":9,"97":0,"98":9,"99":9,"100":9,"101":4,"102":4,"103":4,"104":4,"105":0,"106":0,"107":4,"108":9,"109":9,"110":9,"111":9,"112":16,"113":14,"114":2,"115":2,"116":2,"117":2,"118":3,"119":3,"120":3,"121":7,"122":1,"123":6,"124":1,"125":5,"126":5,"127":5,"128":5,"129":5,"130":5,"131":16,"132":5,"133":5,"134":5,"135":16,"136":5,"137":5,"138":5,"139":5,"140":0,"141":0,"142":0,"143":0,"144":1},"f":{"0":22,"1":0,"2":0,"3":38,"4":24,"5":0,"6":21,"7":21,"8":20,"9":5,"10":4,"11":4,"12":6,"13":20,"14":0,"15":21,"16":1,"17":21,"18":1,"19":0,"20":0,"21":20,"22":11,"23":9,"24":16,"25":3,"26":7,"27":5,"28":5,"29":16,"30":16},"b":{"0":[22,0],"1":[22,22],"2":[38,16],"3":[1],"4":[2],"5":[0],"6":[1],"7":[4,4],"8":[0],"9":[20,0],"10":[20],"11":[1],"12":[1],"13":[0],"14":[4],"15":[9,8],"16":[0,9],"17":[9,9],"18":[14],"19":[2],"20":[1],"21":[1],"22":[5]}}
,"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/reliability-score.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/reliability-score.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":39}},"1":{"start":{"line":3,"column":12},"end":{"line":3,"column":47}},"2":{"start":{"line":5,"column":33},"end":{"line":5,"column":36}},"3":{"start":{"line":34,"column":10},"end":{"line":42,"column":6}},"4":{"start":{"line":48,"column":10},"end":{"line":48,"column":44}},"5":{"start":{"line":53,"column":4},"end":{"line":53,"column":51}},"6":{"start":{"line":54,"column":4},"end":{"line":54,"column":38}},"7":{"start":{"line":63,"column":4},"end":{"line":65,"column":null}},"8":{"start":{"line":64,"column":6},"end":{"line":64,"column":53}},"9":{"start":{"line":67,"column":22},"end":{"line":67,"column":69}},"10":{"start":{"line":68,"column":4},"end":{"line":80,"column":6}},"11":{"start":{"line":70,"column":8},"end":{"line":76,"column":null}},"12":{"start":{"line":71,"column":10},"end":{"line":71,"column":24}},"13":{"start":{"line":72,"column":15},"end":{"line":76,"column":null}},"14":{"start":{"line":73,"column":10},"end":{"line":73,"column":26}},"15":{"start":{"line":74,"column":15},"end":{"line":76,"column":null}},"16":{"start":{"line":75,"column":10},"end":{"line":75,"column":23}},"17":{"start":{"line":77,"column":8},"end":{"line":77,"column":19}},"18":{"start":{"line":90,"column":22},"end":{"line":90,"column":46}},"19":{"start":{"line":91,"column":4},"end":{"line":96,"column":6}},"20":{"start":{"line":98,"column":4},"end":{"line":106,"column":null}},"21":{"start":{"line":99,"column":6},"end":{"line":104,"column":8}},"22":{"start":{"line":105,"column":6},"end":{"line":105,"column":44}},"23":{"start":{"line":108,"column":4},"end":{"line":111,"column":7}},"24":{"start":{"line":113,"column":4},"end":{"line":113,"column":26}},"25":{"start":{"line":114,"column":4},"end":{"line":114,"column":53}},"26":{"start":{"line":116,"column":4},"end":{"line":120,"column":6}},"27":{"start":{"line":122,"column":4},"end":{"line":126,"column":6}},"28":{"start":{"line":128,"column":4},"end":{"line":130,"column":6}},"29":{"start":{"line":133,"column":4},"end":{"line":157,"column":null}},"30":{"start":{"line":134,"column":44},"end":{"line":136,"column":42}},"31":{"start":{"line":138,"column":6},"end":{"line":142,"column":null}},"32":{"start":{"line":139,"column":8},"end":{"line":141,"column":null}},"33":{"start":{"line":140,"column":10},"end":{"line":140,"column":50}},"34":{"start":{"line":143,"column":6},"end":{"line":143,"column":61}},"35":{"start":{"line":145,"column":6},"end":{"line":145,"column":27}},"36":{"start":{"line":146,"column":6},"end":{"line":146,"column":55}},"37":{"start":{"line":147,"column":27},"end":{"line":147,"column":48}},"38":{"start":{"line":148,"column":6},"end":{"line":148,"column":43}},"39":{"start":{"line":149,"column":6},"end":{"line":153,"column":8}},"40":{"start":{"line":154,"column":6},"end":{"line":156,"column":8}},"41":{"start":{"line":166,"column":4},"end":{"line":191,"column":null}},"42":{"start":{"line":167,"column":19},"end":{"line":167,"column":49}},"43":{"start":{"line":168,"column":24},"end":{"line":168,"column":65}},"44":{"start":{"line":169,"column":21},"end":{"line":169,"column":59}},"45":{"start":{"line":171,"column":6},"end":{"line":187,"column":null}},"46":{"start":{"line":172,"column":8},"end":{"line":172,"column":34}},"47":{"start":{"line":173,"column":8},"end":{"line":176,"column":10}},"48":{"start":{"line":177,"column":13},"end":{"line":187,"column":null}},"49":{"start":{"line":178,"column":8},"end":{"line":178,"column":49}},"50":{"start":{"line":179,"column":8},"end":{"line":182,"column":10}},"51":{"start":{"line":184,"column":22},"end":{"line":184,"column":44}},"52":{"start":{"line":185,"column":8},"end":{"line":185,"column":38}},"53":{"start":{"line":186,"column":8},"end":{"line":186,"column":72}},"54":{"start":{"line":188,"column":6},"end":{"line":188,"column":37}},"55":{"start":{"line":190,"column":6},"end":{"line":190,"column":30}},"56":{"start":{"line":199,"column":20},"end":{"line":199,"column":44}},"57":{"start":{"line":200,"column":4},"end":{"line":203,"column":7}},"58":{"start":{"line":201,"column":20},"end":{"line":201,"column":41}},"59":{"start":{"line":202,"column":6},"end":{"line":202,"column":31}},"60":{"start":{"line":207,"column":17},"end":{"line":207,"column":52}},"61":{"start":{"line":208,"column":4},"end":{"line":212,"column":null}},"62":{"start":{"line":209,"column":6},"end":{"line":209,"column":21}},"63":{"start":{"line":211,"column":6},"end":{"line":211,"column":25}},"64":{"start":{"line":30,"column":0},"end":{"line":30,"column":21}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":52,"column":2},"end":{"line":52,"column":14}},"loc":{"start":{"line":52,"column":62},"end":{"line":55,"column":3}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":62,"column":10},"end":{"line":62,"column":25}},"loc":{"start":{"line":62,"column":40},"end":{"line":81,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":69,"column":6},"end":{"line":69,"column":7}},"loc":{"start":{"line":69,"column":29},"end":{"line":78,"column":7}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":89,"column":9},"end":{"line":89,"column":18}},"loc":{"start":{"line":89,"column":68},"end":{"line":158,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":165,"column":9},"end":{"line":165,"column":17}},"loc":{"start":{"line":165,"column":32},"end":{"line":192,"column":3}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":198,"column":9},"end":{"line":198,"column":18}},"loc":{"start":{"line":198,"column":18},"end":{"line":204,"column":3}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":200,"column":23},"end":{"line":200,"column":24}},"loc":{"start":{"line":200,"column":36},"end":{"line":203,"column":5}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":206,"column":9},"end":{"line":206,"column":18}},"loc":{"start":{"line":206,"column":33},"end":{"line":213,"column":3}}}},"branchMap":{"0":{"loc":{"start":{"line":63,"column":4},"end":{"line":65,"column":null}},"type":"if","locations":[{"start":{"line":63,"column":4},"end":{"line":65,"column":null}}]},"1":{"loc":{"start":{"line":70,"column":8},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":70,"column":8},"end":{"line":76,"column":null}},{"start":{"line":72,"column":15},"end":{"line":76,"column":null}}]},"2":{"loc":{"start":{"line":72,"column":15},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":72,"column":15},"end":{"line":76,"column":null}},{"start":{"line":74,"column":15},"end":{"line":76,"column":null}}]},"3":{"loc":{"start":{"line":74,"column":15},"end":{"line":76,"column":null}},"type":"if","locations":[{"start":{"line":74,"column":15},"end":{"line":76,"column":null}}]},"4":{"loc":{"start":{"line":98,"column":4},"end":{"line":106,"column":null}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":106,"column":null}}]},"5":{"loc":{"start":{"line":124,"column":8},"end":{"line":124,"column":null}},"type":"cond-expr","locations":[{"start":{"line":124,"column":32},"end":{"line":124,"column":34}},{"start":{"line":124,"column":32},"end":{"line":124,"column":null}}]},"6":{"loc":{"start":{"line":124,"column":8},"end":{"line":124,"column":34}},"type":"binary-expr","locations":[{"start":{"line":124,"column":8},"end":{"line":124,"column":34}},{"start":{"line":124,"column":32},"end":{"line":124,"column":34}}]},"7":{"loc":{"start":{"line":133,"column":4},"end":{"line":157,"column":null}},"type":"if","locations":[{"start":{"line":133,"column":4},"end":{"line":157,"column":null}}]},"8":{"loc":{"start":{"line":139,"column":8},"end":{"line":141,"column":null}},"type":"if","locations":[{"start":{"line":139,"column":8},"end":{"line":141,"column":null}}]},"9":{"loc":{"start":{"line":166,"column":4},"end":{"line":191,"column":null}},"type":"if","locations":[{"start":{"line":166,"column":4},"end":{"line":191,"column":null}},{"start":{"line":189,"column":11},"end":{"line":191,"column":null}}]},"10":{"loc":{"start":{"line":171,"column":6},"end":{"line":187,"column":null}},"type":"if","locations":[{"start":{"line":171,"column":6},"end":{"line":187,"column":null}},{"start":{"line":177,"column":13},"end":{"line":187,"column":null}}]},"11":{"loc":{"start":{"line":177,"column":13},"end":{"line":187,"column":null}},"type":"if","locations":[{"start":{"line":177,"column":13},"end":{"line":187,"column":null}},{"start":{"line":183,"column":13},"end":{"line":187,"column":null}}]},"12":{"loc":{"start":{"line":207,"column":17},"end":{"line":207,"column":52}},"type":"binary-expr","locations":[{"start":{"line":207,"column":17},"end":{"line":207,"column":47}},{"start":{"line":207,"column":51},"end":{"line":207,"column":52}}]},"13":{"loc":{"start":{"line":207,"column":17},"end":{"line":207,"column":47}},"type":"cond-expr","locations":[{"start":{"line":207,"column":41},"end":{"line":207,"column":43}},{"start":{"line":207,"column":41},"end":{"line":207,"column":47}}]},"14":{"loc":{"start":{"line":207,"column":17},"end":{"line":207,"column":43}},"type":"binary-expr","locations":[{"start":{"line":207,"column":17},"end":{"line":207,"column":43}},{"start":{"line":207,"column":41},"end":{"line":207,"column":43}}]},"15":{"loc":{"start":{"line":208,"column":4},"end":{"line":212,"column":null}},"type":"if","locations":[{"start":{"line":208,"column":4},"end":{"line":212,"column":null}},{"start":{"line":210,"column":11},"end":{"line":212,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":22,"4":22,"5":22,"6":22,"7":40,"8":0,"9":40,"10":40,"11":54,"12":16,"13":38,"14":24,"15":14,"16":14,"17":54,"18":20,"19":20,"20":20,"21":11,"22":11,"23":20,"24":20,"25":20,"26":20,"27":20,"28":20,"29":20,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":49,"42":45,"43":45,"44":45,"45":45,"46":20,"47":20,"48":25,"49":0,"50":0,"51":25,"52":25,"53":25,"54":45,"55":4,"56":0,"57":0,"58":0,"59":0,"60":8,"61":8,"62":4,"63":4,"64":1},"f":{"0":22,"1":40,"2":54,"3":20,"4":49,"5":0,"6":0,"7":8},"b":{"0":[0],"1":[16,38],"2":[24,14],"3":[14],"4":[11],"5":[0,20],"6":[20,20],"7":[0],"8":[0],"9":[45,4],"10":[20,25],"11":[0,25],"12":[8,4],"13":[4,4],"14":[8,8],"15":[4,4]}}
,"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/request-cache.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/request-cache.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":56}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":39}},"2":{"start":{"line":4,"column":12},"end":{"line":4,"column":43}},"3":{"start":{"line":22,"column":22},"end":{"line":22,"column":62}},"4":{"start":{"line":12,"column":10},"end":{"line":20,"column":6}},"5":{"start":{"line":35,"column":4},"end":{"line":40,"column":7}},"6":{"start":{"line":48,"column":4},"end":{"line":48,"column":33}},"7":{"start":{"line":56,"column":4},"end":{"line":56,"column":33}},"8":{"start":{"line":64,"column":16},"end":{"line":64,"column":26}},"9":{"start":{"line":66,"column":4},"end":{"line":66,"column":48}},"10":{"start":{"line":67,"column":4},"end":{"line":73,"column":null}},"11":{"start":{"line":68,"column":6},"end":{"line":72,"column":null}},"12":{"start":{"line":69,"column":8},"end":{"line":69,"column":42}},"13":{"start":{"line":70,"column":8},"end":{"line":70,"column":45}},"14":{"start":{"line":71,"column":8},"end":{"line":71,"column":34}},"15":{"start":{"line":10,"column":0},"end":{"line":10,"column":21}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":22,"column":2},"end":{"line":22,"column":22}},"loc":{"start":{"line":22,"column":62},"end":{"line":22,"column":66}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":30,"column":9},"end":{"line":30,"column":19}},"loc":{"start":{"line":33,"column":34},"end":{"line":41,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":47,"column":9},"end":{"line":47,"column":19}},"loc":{"start":{"line":47,"column":30},"end":{"line":49,"column":3}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":55,"column":9},"end":{"line":55,"column":22}},"loc":{"start":{"line":55,"column":35},"end":{"line":57,"column":3}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":63,"column":9},"end":{"line":63,"column":22}},"loc":{"start":{"line":63,"column":38},"end":{"line":74,"column":3}}}},"branchMap":{"0":{"loc":{"start":{"line":68,"column":6},"end":{"line":72,"column":null}},"type":"if","locations":[{"start":{"line":68,"column":6},"end":{"line":72,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":22,"4":22,"5":8,"6":9,"7":9,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":1},"f":{"0":22,"1":8,"2":9,"3":9,"4":0},"b":{"0":[0]}}
,"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/utils.ts": {"path":"/Users/nioni/Documents/work/hopr/rpch/rpch/packages/sdk/src/utils.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":37}},"1":{"start":{"line":3,"column":13},"end":{"line":3,"column":55}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{}}
}
{
"name": "@rpch/sdk",
"version": "0.1.7-blockwallet.0",
"version": "0.1.7-blockwallet.1",
"license": "LGPL-3.0",

@@ -20,10 +20,12 @@ "main": "./build/index.js",

"@rpch/configs-typescript": "*",
"nock": "^13.2.9"
"nock": "^13.2.9",
"@types/async-retry": "^1.4.5"
},
"dependencies": {
"@rpch/common": "0.1.7-blockwallet.0",
"@rpch/crypto-bridge": "0.1.7-blockwallet.0",
"@rpch/common": "0.1.7-blockwallet.1",
"@rpch/crypto-bridge": "0.1.7-blockwallet.1",
"cross-fetch": "^3.1.5",
"ethers": "^5.7.2"
"ethers": "^5.7.2",
"async-retry": "^1.3.3"
}
}

@@ -1,7 +0,7 @@

import assert from "assert";
import { expect } from "@jest/globals";
import { Request, hoprd } from "@rpch/common";
import * as fixtures from "@rpch/common/build/fixtures";
import assert from "assert";
import nock from "nock";
import SDK, { type HoprSdkOps } from "./index";
import { expect } from "@jest/globals";

@@ -85,2 +85,74 @@ const TIMEOUT = 5e3;

describe("started unstable", function () {
let mock: ReturnType<typeof createSdkMock>;
beforeEach(async function () {
mock = createSdkMock();
});
afterEach(async function () {
await mock.sdk.stop();
jest.clearAllMocks();
});
it("should select entry node after 2 tries", async function () {
//@ts-ignore
const selectEntryNodeMock = jest.spyOn(mock.sdk, "selectEntryNode");
DP_GET_NODES.reply(200, [
{
exit_node_pub_key: EXIT_NODE_PUB_KEY,
id: EXIT_NODE_PEER_ID,
},
]);
// fail 3 times, work after wards
nock(DISCOVERY_PLATFORM_API_ENDPOINT)
.post("/api/v1/request/entry-node")
.once()
.reply(500)
.post("/api/v1/request/entry-node")
.once()
.reply(200, {
hoprd_api_endpoint: ENTRY_NODE_API_ENDPOINT,
hoprd_api_port: ENTRY_NODE_API_PORT,
accessToken: ENTRY_NODE_API_TOKEN,
id: ENTRY_NODE_PEER_ID,
});
await mock.sdk.start();
assert.equal(selectEntryNodeMock.mock.calls.length, 2);
});
it("should fetch exit nodes after 2 tries", async function () {
//@ts-ignore
const fetchExitNodesMock = jest.spyOn(mock.sdk, "fetchExitNodes");
DP_REQ_ENTRY_NOCK.reply(200, {
hoprd_api_endpoint: ENTRY_NODE_API_ENDPOINT,
hoprd_api_port: ENTRY_NODE_API_PORT,
accessToken: ENTRY_NODE_API_TOKEN,
id: ENTRY_NODE_PEER_ID,
});
nock(DISCOVERY_PLATFORM_API_ENDPOINT)
.get("/api/v1/node?hasExitNode=true")
.once()
.reply(500)
.get("/api/v1/node?hasExitNode=true")
.once()
.reply(200, [
{
exit_node_pub_key: EXIT_NODE_PUB_KEY,
id: EXIT_NODE_PEER_ID,
},
]);
await mock.sdk.start();
assert.equal(fetchExitNodesMock.mock.calls.length, 2);
});
});
describe("started", function () {

@@ -318,2 +390,30 @@ let ops: HoprSdkOps;

});
it("should handle failed request", async function () {
HOPRD_SEND_MESSAGE_NOCK.reply(400, "error");
const [clientRequest] = fixtures.generateMockedFlow(3);
const resolveFunc = jest.fn(() => {});
const rejectFunc = jest.fn(() => {});
// @ts-ignore
sdk.requestCache.addRequest(clientRequest, resolveFunc, rejectFunc);
// call function to handle request failed
sdk.handleFailedRequest(clientRequest);
// should reject promise
assert.equal(rejectFunc.mock.calls.length, 1);
// request should not be in request cache
// @ts-ignore
assert.equal(sdk.requestCache.getRequest(clientRequest.id), undefined);
// should add failed metric
assert.equal(
// @ts-ignore
sdk.reliabilityScore.metrics.get(sdk.entryNode?.peerId)?.stats.failed,
1
);
});
it("should not save request to requestCache if request to hoprd fails", async function () {

@@ -325,2 +425,3 @@ HOPRD_SEND_MESSAGE_NOCK.reply(400, "error");

} catch (e: any) {
// this will run if request is rejected
// @ts-ignore

@@ -394,2 +495,62 @@ assert.equal(sdk.requestCache.getRequest(clientRequest.id), undefined);

describe("handling request size", function () {
it("should not send requests larger than max amount of segments", async function () {
const hoprdSendMessageSpy = jest.spyOn(hoprd, "sendMessage");
const MAXIMUM_SEGMENTS_PER_REQUEST = 100;
const bigReq = await sdk.createRequest(
fixtures.PROVIDER,
// create an rpc call that will exceed MAXIMUM_SEGMENTS_PER_REQUEST size
fixtures.RPC_REQ_LARGE.repeat(MAXIMUM_SEGMENTS_PER_REQUEST)
);
try {
await sdk.sendRequest(bigReq);
} catch (e) {
expect(e).toEqual("Request is too big");
// request should not be in request cache
// @ts-ignore
expect(sdk.requestCache.getRequest(bigReq.id)).toEqual(undefined);
// hopr send message should never be called
expect(hoprdSendMessageSpy.mock.calls.length).toEqual(0);
}
});
it("should send requests smaller than max amount of segments", function (done) {
HOPRD_SEND_MESSAGE_NOCK.reply(202, "someresponse");
const MAXIMUM_SEGMENTS_PER_REQUEST = 100;
sdk
.createRequest(fixtures.PROVIDER, fixtures.RPC_REQ_LARGE)
.then((normalRequest) => {
// how many times request cas increase without passing MAXIMUM_SEGMENTS_PER_REQUEST
const numberOfRepetitions = Math.floor(
MAXIMUM_SEGMENTS_PER_REQUEST /
normalRequest.toMessage().toSegments().length
);
const [clientRequest, , exitNodeResponse] =
fixtures.generateMockedFlow(
3,
// create an rpc call that is close to MAXIMUM_SEGMENTS_PER_REQUEST
fixtures.RPC_REQ_LARGE.repeat(numberOfRepetitions)
);
sdk.sendRequest(clientRequest).then((response) => {
// this will run when .onMessage resolves request
assert.equal(response.id, clientRequest.id);
// @ts-ignore
const pendingRequest = sdk.requestCache.getRequest(
clientRequest.id
);
assert.equal(pendingRequest, undefined);
done();
});
// return response for sdk sendRequest
// @ts-ignore
sdk.onMessage(exitNodeResponse.toMessage());
});
});
});
describe("should handle requests correctly when receiving a response", function () {

@@ -396,0 +557,0 @@ it("should remove request with matching response", async function () {

@@ -14,2 +14,3 @@ // @ts-ignore

import fetch from "cross-fetch";
import retry from "async-retry";
import ReliabilityScore, { Stats } from "./reliability-score";

@@ -20,2 +21,4 @@ import RequestCache from "./request-cache";

const log = createLogger();
// max number of segments sdk can send to entry node
const MAXIMUM_SEGMENTS_PER_REQUEST = 100;
const DEADLOCK_MS = 1e3 * 60 * 0.5; // 30s

@@ -109,60 +112,67 @@

}> {
log.verbose("Selecting entry node");
const rawResponse: globalThis.Response = await fetch(
new URL(
"/api/v1/request/entry-node",
discoveryPlatformApiEndpoint
).toString(),
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept-Content": "application/json",
},
body: JSON.stringify({
client: this.ops.client,
exclusionList,
}),
}
);
try {
this.selectingEntryNode = true;
log.verbose("Selecting entry node");
const rawResponse: globalThis.Response = await fetch(
new URL(
"/api/v1/request/entry-node",
discoveryPlatformApiEndpoint
).toString(),
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept-Content": "application/json",
},
body: JSON.stringify({
client: this.ops.client,
exclusionList,
}),
}
);
const response: {
hoprd_api_endpoint: string;
accessToken: string;
id: string;
} = await rawResponse.json();
const response: {
hoprd_api_endpoint: string;
accessToken: string;
id: string;
} = await rawResponse.json();
// Check for error response
if (rawResponse.status !== 200) {
log.error("Failed to request entry node", rawResponse.status, response);
throw new Error(`Failed to request entry node`);
}
// Check for error response
if (rawResponse.status !== 200) {
log.error("Failed to request entry node", rawResponse.status, response);
throw new Error(`Failed to request entry node`);
}
const apiEndpointUrl = new URL(response.hoprd_api_endpoint);
const apiEndpointUrl = new URL(response.hoprd_api_endpoint);
this.entryNode = {
apiEndpoint: apiEndpointUrl.toString(),
apiToken: response.accessToken,
peerId: response.id,
};
log.verbose("Selected entry node", this.entryNode);
this.entryNode = {
apiEndpoint: apiEndpointUrl.toString(),
apiToken: response.accessToken,
peerId: response.id,
};
log.verbose("Selected entry node", this.entryNode);
// Refresh messageListener
if (this.stopMessageListener) this.stopMessageListener();
this.stopMessageListener = await hoprd.createMessageListener(
this.entryNode!.apiEndpoint,
this.entryNode!.apiToken,
(message) => {
try {
const segment = Segment.fromString(message);
this.segmentCache.onSegment(segment);
} catch (e) {
log.verbose(
"rejected received data from HOPRd: not a valid segment",
message
);
// Refresh messageListener
if (this.stopMessageListener) this.stopMessageListener();
this.stopMessageListener = await hoprd.createMessageListener(
this.entryNode!.apiEndpoint,
this.entryNode!.apiToken,
(message) => {
try {
const segment = Segment.fromString(message);
this.segmentCache.onSegment(segment);
} catch (e) {
log.verbose(
"rejected received data from HOPRd: not a valid segment",
message
);
}
}
}
);
return this.entryNode;
);
return this.entryNode;
} catch (error) {
throw error;
} finally {
this.selectingEntryNode = false;
}
}

@@ -216,37 +226,46 @@

const counter = await this.getKeyVal(
match.request.exitNodeDestination
).then((k) => BigInt(k || "0"));
try {
const counter = await this.getKeyVal(
match.request.exitNodeDestination
).then((k) => BigInt(k || "0"));
// construct Response from Message
const response = Response.fromMessage(
this.crypto!,
match.request,
message,
counter,
(exitNodeId, counter) => {
this.setKeyVal(exitNodeId, counter.toString());
}
);
// construct Response from Message
const response = Response.fromMessage(
this.crypto!,
match.request,
message,
counter,
(exitNodeId, counter) => {
this.setKeyVal(exitNodeId, counter.toString());
}
);
const responseTime = Date.now() - match.createdAt.getTime();
log.verbose(
"response time for request %s: %s ms",
match.request.id,
responseTime,
log.createMetric({
id: match.request.id,
responseTime: responseTime,
})
);
const responseTime = Date.now() - match.createdAt.getTime();
log.verbose(
"response time for request %s: %s ms",
match.request.id,
responseTime,
log.createMetric({
id: match.request.id,
responseTime: responseTime,
})
);
match.resolve(response);
this.reliabilityScore.addMetric(
match.request.entryNodeDestination,
match.request.id,
"success"
);
this.requestCache.removeRequest(match.request);
match.resolve(response);
this.reliabilityScore.addMetric(
match.request.entryNodeDestination,
match.request.id,
"success"
);
this.requestCache.removeRequest(match.request);
log.verbose("responded to %s with %s", match.request.body, response.body);
log.verbose("responded to %s with %s", match.request.body, response.body);
} catch (e) {
log.error(
"failed to decrypt message id %s with body",
message.id,
message.body
);
this.handleFailedRequest(match.request);
}
}

@@ -266,2 +285,15 @@

/**
* Remove request from requestCache and add failed metric
* @param req Request
* @returns void
*/
public handleFailedRequest(req: Request) {
// add metric failed metric
this.onRequestRemoval(req);
// reject request promise
this.requestCache.getRequest(req.id)?.reject("request failed");
this.requestCache.removeRequest(req);
}
/**
* Start the SDK and initialize necessary data.

@@ -313,2 +345,24 @@ */

// fetch required data from discovery platform
await retry(
() => this.selectEntryNode(this.ops.discoveryPlatformApiEndpoint),
{
retries: 5,
onRetry: (e, attempt) => {
log.error("Error while selecting entry node", e);
log.verbose("Retrying to select entry node, attempt:", attempt);
},
}
);
await retry(
() => this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint),
{
retries: 5,
onRetry: (e, attempt) => {
log.error("Error while fetching exit nodes", e);
log.verbose("Retrying to fetch exit nodes, attempt:", attempt);
},
}
);
// check for expires caches every second

@@ -324,8 +378,9 @@ this.intervals.push(

setInterval(() => {
this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint);
this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint).catch(
(error) => {
log.error("Failed to fetch exit nodes", error);
}
);
}, 60e3)
);
await this.selectEntryNode(this.ops.discoveryPlatformApiEndpoint);
await this.fetchExitNodes(this.ops.discoveryPlatformApiEndpoint);
}

@@ -365,3 +420,2 @@

try {
this.selectingEntryNode = true;
await this.selectEntryNode(

@@ -371,6 +425,4 @@ this.ops.discoveryPlatformApiEndpoint,

);
this.selectingEntryNode = false;
} catch (error) {
log.error("Couldn't find elegible node: ", error);
this.selectingEntryNode = false;
log.error("Couldn't find new entry node: ", error);
this.setDeadlock(DEADLOCK_MS);

@@ -439,2 +491,10 @@ }

if (segments.length > MAXIMUM_SEGMENTS_PER_REQUEST) {
log.error(
"Request exceeds maximum amount of segments with %s segments",
segments.length
);
return reject("Request is too big");
}
// Add request to request cache

@@ -464,5 +524,3 @@ this.requestCache.addRequest(req, resolve, reject);

// If any promises were rejected, remove request from cache and reject promise
this.onRequestRemoval(req);
this.requestCache.removeRequest(req);
reject("failed to send message to hoprd");
this.handleFailedRequest(req);
}

@@ -472,5 +530,3 @@ } catch (e) {

log.error("failed to send message to hoprd", e);
this.onRequestRemoval(req);
this.requestCache.removeRequest(req);
reject("failed to send message to hoprd");
this.handleFailedRequest(req);
}

@@ -477,0 +533,0 @@ });

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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