🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@subsquid/rpc-client

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@subsquid/rpc-client - npm Package Compare versions

Comparing version
4.12.0
to
4.13.0
+1
-0
lib/subscriptions.d.ts

@@ -16,2 +16,3 @@ import type { RpcClient } from './client';

close(): void;
reset(): void;
}

@@ -18,0 +19,0 @@ export declare class Subscriptions {

+1
-1

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

{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,UAAU,CAAA;AAKvC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IAC3B,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB;AAGD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,KAAK,IAAI,IAAI,CAAA;CAChB;AAMD,qBAAa,aAAa;IAGV,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAA2B;gBAErB,MAAM,EAAE,SAAS;IAKrC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB;IAIhD,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,OAAO;CAKlB"}
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,UAAU,CAAA;AAKvC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IAC3B,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB;AAGD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,KAAK,IAAI,IAAI,CAAA;IACb,KAAK,IAAI,IAAI,CAAA;CAChB;AAOD,qBAAa,aAAa;IAGV,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAA4B;gBAEtB,MAAM,EAAE,SAAS;IAKrC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB;IAIhD,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,OAAO;CAKlB"}
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Subscriptions = void 0;
const util_internal_1 = require("@subsquid/util-internal");
const assert_1 = __importDefault(require("assert"));
const errors_1 = require("./errors");

@@ -25,4 +29,4 @@ class Subscriptions {

}
let id = `${msg.method}::${subscription}`;
let handle = this.active.get(id);
let key = `${msg.method}::${subscription}`;
let handle = this.active.get(key);
if (handle == null)

@@ -60,2 +64,6 @@ return;

}
getSubKey() {
(0, assert_1.default)(this.id != null);
return `${this.sub.notification}::${this.id}`;
}
close() {

@@ -70,3 +78,3 @@ if (this.closed)

return;
this.active.delete(this.id);
this.active.delete(this.getSubKey());
this.id = undefined;

@@ -88,3 +96,3 @@ if (reason instanceof errors_1.RpcConnectionError && this.sub.resubscribeOnConnectionLoss) {

if (this.isActive) {
this.active.set(this.id, this);
this.active.set(this.getSubKey(), this);
}

@@ -97,4 +105,9 @@ else {

return;
this.closed = true;
this.sub.onError(err);
if (err instanceof errors_1.RpcConnectionError && this.sub.resubscribeOnConnectionLoss) {
this.subscribe();
}
else {
this.closed = true;
this.sub.onError(err);
}
});

@@ -105,4 +118,9 @@ }

return;
this.active.delete(this.id);
this.client.call(this.sub.unsubscribe, [this.id], { retryAttempts: 0 }).catch(err => {
this.doUnsubscribe().then();
}
doUnsubscribe() {
this.active.delete(this.getSubKey());
let id = this.id;
this.id = undefined;
return this.client.call(this.sub.unsubscribe, [id], { retryAttempts: 0 }).catch(err => {
if (err instanceof errors_1.RpcConnectionError)

@@ -113,2 +131,11 @@ return;

}
reset() {
if (this.id == null)
return;
this.doUnsubscribe().then(() => {
if (this.closed)
return;
this.subscribe();
});
}
validateSubscriptionResult(result, req) {

@@ -126,10 +153,10 @@ switch (typeof result) {

}
let id = `${this.sub.notification}::${result}`;
if (this.active.has(id)) {
let key = `${this.sub.notification}::${result}`;
if (this.active.has(key)) {
this.client.reset();
throw new Error(`got duplicate subscription: ${result}`);
}
return id;
return result;
}
}
//# sourceMappingURL=subscriptions.js.map

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

{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../src/subscriptions.ts"],"names":[],"mappings":"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"}
{
"name": "@subsquid/rpc-client",
"version": "4.12.0",
"version": "4.13.0",
"description": "Lightweight JSON-RPC client library",

@@ -16,3 +16,3 @@ "license": "GPL-3.0-or-later",

"dependencies": {
"@subsquid/http-client": "^1.6.0",
"@subsquid/http-client": "^1.6.1",
"@subsquid/logger": "^1.4.0",

@@ -19,0 +19,0 @@ "@subsquid/util-internal": "^3.2.0",

import {addErrorContext} from '@subsquid/util-internal'
import assert from 'assert'
import type {RpcClient} from './client'

@@ -23,10 +24,12 @@ import {RpcConnectionError, RpcError} from './errors'

close(): void
reset(): void
}
type SubId = string
type SubKey = string // "{notification}::{id}"
type SubId = number | string
export class Subscriptions {
private active = new Map<SubId, Handle>()
private active = new Map<SubKey, Handle>()

@@ -51,4 +54,4 @@ constructor(private client: RpcClient) {

}
let id = `${msg.method}::${subscription}`
let handle = this.active.get(id)
let key = `${msg.method}::${subscription}`
let handle = this.active.get(key)
if (handle == null) return

@@ -87,3 +90,3 @@

private client: RpcClient,
private active: Map<SubId, Handle>
private active: Map<SubKey, Handle>
) {

@@ -101,2 +104,7 @@ this.subscribe()

getSubKey(): string {
assert(this.id != null)
return `${this.sub.notification}::${this.id}`
}
close(): void {

@@ -110,3 +118,3 @@ if (this.closed) return

if (this.closed) return
this.active.delete(this.id!)
this.active.delete(this.getSubKey())
this.id = undefined

@@ -128,3 +136,3 @@ if (reason instanceof RpcConnectionError && this.sub.resubscribeOnConnectionLoss) {

if (this.isActive) {
this.active.set(this.id, this)
this.active.set(this.getSubKey(), this)
} else {

@@ -135,11 +143,21 @@ this.unsubscribe()

if (this.closed) return
this.closed = true
this.sub.onError(err)
if (err instanceof RpcConnectionError && this.sub.resubscribeOnConnectionLoss) {
this.subscribe()
} else {
this.closed = true
this.sub.onError(err)
}
})
}
private unsubscribe(): void {
private unsubscribe() {
if (this.id == null) return
this.active.delete(this.id)
this.client.call(this.sub.unsubscribe, [this.id], {retryAttempts: 0}).catch(err => {
this.doUnsubscribe().then()
}
private doUnsubscribe(): Promise<void> {
this.active.delete(this.getSubKey())
let id = this.id
this.id = undefined
return this.client.call(this.sub.unsubscribe, [id], {retryAttempts: 0}).catch(err => {
if (err instanceof RpcConnectionError) return

@@ -155,2 +173,10 @@ this.client.reset(

reset(): void {
if (this.id == null) return
this.doUnsubscribe().then(() => {
if (this.closed) return
this.subscribe()
})
}
private validateSubscriptionResult(result: unknown, req: RpcRequest): SubId {

@@ -172,9 +198,9 @@ switch(typeof result) {

}
let id = `${this.sub.notification}::${result}`
if (this.active.has(id)) {
let key = `${this.sub.notification}::${result}`
if (this.active.has(key)) {
this.client.reset()
throw new Error(`got duplicate subscription: ${result}`)
}
return id
return result
}
}